2. PLAN
• Historique
• Définition
• C’est quoi une usine logicielle
• Composants
• Modèle d'usine logicielle
• Personnalisation de masse
• Point de vue du fabricant
• Le point de vue du client
• Trois idées clés en usine logicielle
• Schema d’usine logicielle
• Modele d’usine logicielle
• Environnement de développement extensible 2
3. PLAN
• Examples d’usine logicielle
• Smart Client Software Factory
• Web Service Software Factory
• Mobile Client Software Factory
• Web Client Software Factory
• Ce qui nous attend dans les usines à logiciels
3
4. HISTORIQUE
• Michael A. Cusumano –Institut des Technologies de Massachusetts
– Historien principal des usines à logiciels.
• Fin 1960 – Le terme ‘usine’ est apparu dans l’ingénierie logicielle;
associé aux outils assistés par ordinateurs, systèmes de contrôle de
gestion, modularisation, et réutilisation.
• Hitachi – première compagnie au monde à adopter le terme ‘usine’
pour étiqueter une installation logicielle
• Steve Cook and Stuart Kent de Microsoft – proposer la méthode des
usines à logiciels.
4
5. DEFINITION
Jack Greenfield et Keith Short
Une ligne de produits logiciels qui configure des outils
extensibles, des processus et de contenu en utilisant un
modèle d'usine logicielle basée sur un schéma de la
fabrique des logiciels pour automatiser le développement et
la maintenance des variantes d'un produit archétype en
adaptant, assemblant et en configurant des composants à
base de Framework.
5
6. DEFINITION
Microsoft Patterns & Practices Team
Une usine logicielle est une collection structurée des
logiciels connexes. Quand une usine logicielle est installée
dans un environnement de développement, cela permet aux
architectes et aux développeurs de créer efficacement de
certains types d'applications de haute qualité.
6
8. Concepteurs
Développeurs
Outil focalisé avec
des instructions
Les analystes d'affaires
spécifiques
ciblée à résoudre
petite et Testeurs
spécifique
Chefs de projetde
problèmes
l'entreprise
Architectes
8
9. COMMENT ÇA FONCTIONNE?
AD construit 70% de
30% de composants Produit complet
chaque prêts à ou partiel
application l'emploi
• Développement - composant d'assemblage, impliquant la
personnalisation, l'adaptation et l'extension
• Sorties instances de plusieurs produits différents - chacune est
différente de la précédente en fonction de son unique
configuration 9
10. COMPOSANTS
Modèles et Patterns
• Représentent des concepts au sein d'un système logiciel
Langages spécifiques au domaine : Domain Specific
Languages (DSL)
• Fournit des langages spécialisés pour la manipulation de concepts dans
leur domaine respectif
Lignes de produits logiciels
• Sous-ensembles de composants qui sont configurés, assemblés et
emballés afin de fournir un produit assez complet
• Composante la plus importante d'une Software Factory
10
11. COMPOSANTS
Modèles and Patterns
• Represents concepts within a software system
Domain Specific Languages (DSL)
Design Patterns
• Provides specialized languages for manipulating concepts within their
• Une solution générale réutilisables à des problèmes
respective domain
communs dans la conception de logiciels
• Software Product Lines
Description du modèle ou de la résolution de problèmes
• dans de of components situations différentes
Subsets nombreuses that are configured, assembled, and packaged to
• N'est pas uncomplete productqui peut être transformé
provide a fairly motif fini
• directement en unof a Software Factory
Largest component code
11
12. COMPOSANTS
Modèles et Patterns
• Représentent des concepts au sein d'un système logiciel
Langages spécifiques au domaine : Domain Specific
Languages (DSL)
• Fournit des langages spécialisés pour la manipulation de concepts dans
leur domaine respectif
Lignes de produits logiciels
• Sous-ensembles de composants qui sont configurés, assemblés et
emballés afin de fournir un produit assez complet
• Composante la plus importante d'une Software Factory
12
13. COMPOSANTS
Modèles et Patterns
• Représentent des concepts au sein d'un système logiciel
Langages spécifiques au domaine : Domain Specific
Languages (DSL)
• Fournit des langages spécialisés pour la manipulation de concepts dans
leur domaine respectif
Lignes de produits logiciels
• Sous-ensembles de composants qui sont configurés, assemblés et
emballés afin de fournir un produit assez complet
• Composante la plus importante d'une Software Factory
13
14. 14
MODÈLE D'USINE LOGICIELLE
Product Line Analysis
- Product Line Definition
• Utilise un ensemble de - Problem Domain Modeling
-Solution Domain Modeling
Product Development
modèles Product Line Design
d'industrialisation qui - Product Architecture
Product Configuration
- Infrastructure Architecture
accélère le -Architecture Feature
Mapping Software Extensible Tools
développement rapide Schema
de produits logiciels Product Line
Implementation Variable Customized Tools
(MSDN, 2004). - Asset Provisioning
Assets
- Asset Packaging Product Development
Fixed Assets
Source: Software Factory Model, http://msdn2.microsoft.com/en-us/library/ms954811.aspx
14
15. PERSONNALISATION DE MASSE
• Personnalisation modulaire
- utilise le principe des "blocs de construction"
• Personnalisation ajustable
- type réversible de personnalisation
• Personnalisation dimensionnelle
- procédures de personnalisation permanents
- par exemple mélange, adaptation ou encore de coupe à
réparer. 15
16. POINT DE VUE DU FABRICANT
Avantages Inconvénients
• Réduction des coûts • Considéré comme un
• Gagne fidélisation de la clientèle investissement cher en TIC
• Avantage concurrentiel
• Analyse approfondie des besoins • Nécessite une formation
du client • Risques probables d'échec
• Des revenus plus élevés
• Position concurrentielle
• Processus de faisabilité
technique
• De fortes chances d'amélioration
des affaires
• Préparation de l'organisation 16
17. LE POINT DE VUE DU CLIENT
Avantages Inconvénients
• la commodité du client • Prend plus de temps pour
• Les produits sont conçus en être livré
fonction des préférences du • L'approvisionnement est
client beaucoup plus compliqué
• Les achats peuvent se faire que ce que nous savons
en dépit des différences de
temps et de lieu entre le • Difficulté de se procurer du
fabricant et le client produit final avant qu'il
• Personnalisés selon les arrive à être acheté
besoins individuels d'un
17
client
18. LE POINT DE VUE DU CLIENT
Avantages Inconvénients
• Les clients seront en mesure • Des produits sur mesure sont
de dire aux fabricant généralement beaucoup plus
exactement ce qu’ ils ont cher que les habituelles
besoin
• Encourage les clients à
investir une quantité
suffisante de temps pour
concevoir leurs produits qui
à son tour crée un
atmosphère de loyauté 18
20. SCHEMA D’USINE LOGICIELLE
Ingrédients:
Projets
Répertoires de code source
Fichiers SQL
Fichiers de Configuration
20
21. SCHEMA D’USINE LOGICIELLE
• Explique comment elles doivent être combinées pour
devenir un produit.
• Décrit l'architecture de la ligne de produits, et les
relations clés entre les composants et les Frameworks
dont elles sont composées.
21
23. MODELE D’USINE LOGICIELLE
• Fournit des patterns, des conseils, des modèles, des
Frameworks, des échantillons, des outils personnalisés,
des feuilles de style, et autres ingrédients utilisés pour
construire des produits
23
31. SMART CLIENT SOFTWARE FACTORY
• Fournit un ensemble
intégré de lignes
directrices qui aide les
architectes et les
développeurs à créer
des applications client
intelligentes
composites
31
32. SMART CLIENT SOFTWARE FACTORY
Contenu:
• Modèles
• Patterns
• Démarrages rapides
• Rubriques de procédures
• Les implémentations de référence
32
33. SMART CLIENT SOFTWARE FACTORY
Scénario:
• Architectes - utiliser usine logicielle pour créer leurs propres
architectures de référence client et les distribuer aux
développeurs
• Développeurs - l'utiliser pour créer des applications client
intelligent, compte tenu des pratiques éprouvées
33
34. SMART CLIENT SOFTWARE FACTORY
Avantages:
• Entreprises - productivité accrue des utilisateurs et la
simplification des tâches d'affaires
• Architectes - amélioration de la qualité et de la cohérence
• Développeurs - une productivité accrue et un temps de montée
en puissance plus rapide
• Opérations de consolidation - des efforts opérationnels
34
36. WEB SERVICE SOFTWARE FACTORY
• Permet aux développeurs et aux architectes de créer des
applications de service Web
• Ensemble intégré d'outils, les modèles, le code source et des
conseils normatifs
36
37. WEB SERVICE SOFTWARE FACTORY
Avantages:
• Amélioration de la qualité
• Prévisibilité accrue
• Augmentation de la productivité
• Une flexibilité accrue
37
39. MOBILE CLIENT SOFTWARE FACTORY
• Fournit des lignes directrices pour aider les architectes et les
développeurs de créer des applications mobiles qui
interagissent avec les systèmes dorsaux sur les réseaux comme
le WiFi et GPRS
39
40. MOBILE CLIENT SOFTWARE FACTORY
Contenu:
• Orientation / Patterns
• Rubriques de procédures
• Les implémentations de référence
• Guidance Automation Toolkit
40
41. MOBILE CLIENT SOFTWARE FACTORY
Avantages:
• Démarrage accéléré
• Réduction des risques
• Amélioration de la qualité
• Augmentation de la productivité
• Facilité d'adoption
41
43. WEB CLIENT SOFTWARE FACTORY
• Fournit des solutions éprouvées aux défis communs trouvés
lors de la construction et de l'exploitation de grands sites de
traitement des transactions de l'entreprise sur le Web
43
44. WEB CLIENT SOFTWARE FACTORY
Contenu:
• Collection de composants réutilisables et de bibliothèque
• Modèles de solutions de Visual Studio 2005, des assistants et
des extensions
• Rubriques de procédures
44
45. WEB CLIENT SOFTWARE FACTORY
Avantages:
• Business - la simplification des tâches professionnelles
• Architecture - architecture de développement commun
• Les équipes de développement - accélérer la production
45
46. CE QUI NOUS ATTEND DANS LES
USINES A LOGICIELS
46
47. ACROPOLE
• Définissez votre application entière dans un design
moderne très riche
• Construire des pièces, des comportements, de navigation,
et même la logique métier tout dans un design
• Avenir de l'usine du client logiciel intelligent
47