Conclusion
Il est compliqué de conclure simplement sur cette différence. Le plus important est de noter la collaboration entre l’architecte logiciel et les développeurs (voir D’après Marc Richards)
Architecture Logicielle
Le rôle de l’architecture est de minimiser le coût du changement.
- Quoi? faire pour répondre au besoin client
- Pourquoi? faire ce choix
- Se concentre sur les choix stratégiques
- Language, framework, périmètre, méthodologie de travail, etc
- E.g. styles architecturaux, caractérisitques architecturales, etc …
Architecture is the part of design that deals with the aspects that are difficult to change such as the technology choices, application/system structure, trade-offs between quality attributes, how and where data is stored, deployment and runtime properties
Focus on
L’Architecture Logicielle se concentrer sur les principales décisions de conception :
- Structure : composants et connexions
- Comportement : responsabilités de chaque composant, algorithmes de haut niveau
- Interaction : règles régissant la communication entre les composants
- Attributs de qualité : stratégie pour y parvenir
- Mise en œuvre : langage, plate-forme, bibliothèques, etc.
En soit, toutes décisions qui a un impact sur les préoccupations des principales parties prenantes ou qui a un ou qui a un impact global sur le programme
Et on ne se concentre pas sur les détails sans importance. Par exemple les décisions internes d’un composant : algorithmes internes, structures de données, modèles de conception locaux. ET qui n’ont pas d’impact sur les préoccupations des principales parties prenantes.
Conception Logicielle
- Complète l’Architecture Logicelle avec le Comment? implémenter
- Se concentre sur les contraintes locales
- E.g. Design Patterns, SOLID, etc …
Conclusion
Gardez à l’esprit que la frontière est très mince, l’architecture et la conception logicielle sont fortement liées.