Architecture logicielle — ARC (campus UBS, Vannes)

Software architecture

Description

L'architecture logicielle a émergé comme un domaine clé de l'informatique pour le développement de systèmes à logiciel prépondérant, notamment dans le cadre des systèmes complexes, cybersécurisés. Cette UE couvre les aspects théoriques et pratiques de ce champ disciplinaire. Elle vise à donner une connaissance solide des principaux concepts, théories et langages pour la conception architecturale des systèmes à logiciel prépondérant. Elle met l'accent à la fois sur les aspects pratiques des langages de description et d'analyse des architectures logicielles supportés par des mécanismes et outils que sur les aspects formels pour traiter les architectures logicielles cybersécurisées. L'UE couvre ainsi les connaissances et compétences pour décrire, valider, vérifier et raffiner formellement les modèles architecturaux afin de générer et faire évoluer dynamiquement, à la volée, des systèmes cybersécurisés à logiciel prépondérant. Elle présente d'une part, l'état de l'art du domaine et d'autre part, ses axes de recherche.

Mots-clés

Architectures logicielles, Description architecturale, Analyse architecturale, Styles architecturaux pour systèmes cybersécurisés

Pré-requis

Des connaissances en modélisation, e.g. UML ou SysML, ainsi que les bases des systèmes formels seraient utiles.

Références biblio pour obtenir les pré-requis

Fowler M., UML Distilled, Addison-Wesley, 2003.
Delligatti L., SysML Distilled, Addison-Wesley, 2015.

Modules allant naturellement avec ce cours

SEC, SES, VER

Contenu

1. Introduction au domaine des architectures logicielles et son état de l'art.
2. Concepts, approches et langages pour modéliser les architectures logicielles.
3. Attributs qualités des architectures logicielles en général et des architectures cybersécurisées en particulier.
4. Styles et patterns architecturaux pour les architectures cybersécurisées.
5. Techniques formelles pour décrire et analyser les architectures logicielles pour systèmes à logiciel prépondérant.
6. Application des langages, techniques et outils pour la description et l'analyse des architectures cybersécurisées pour systèmes à logiciel prépondérant.
7. Présentation des axes et défis de recherche de la modélisation des architectures cybersécurisées pour systèmes à logiciel prépondérant.

Compétences acquises

Savoir :
- Langages de description d'architectures logicielles
- SysML/UML pour la description d'architectures logicielles
- Modèles formels pour la description et l'analyse d'architectures logicielles cybersécurisées
Savoir-faire :
- Aptitude à modéliser les architectures logicielles selon des approches semi-formelles et formelles.
- Aptitude à spécifier et vérifier des propriétés architecturales, dont les propriétés de cybersécurité.
- Aptitude à concevoir des architectures logicielles cybersécurisées fondés sur la composition de styles architecturaux.

Références

Oquendo F., Leite J., Batista T., Software Architecture in Action, Springer, 2016.
Bass L., Clements P., Kazman R.: Software Architecture in Practice, 3rd edition, Addison-Wesley, 2012.
Bernardo M., Inverardi P. (Eds): Formal Methods for Software Architectures. Springer-Verlag, 2003.
Clements P., Bachmann F., Bass L., Garlan D., Ivers J., Little R., Merson P., Nord R., Stafford J., Documenting Software Architectures: Views and Beyond, 2nd edition, Addison-Wesley, 2010.
Taylor R., Medvidovic N., Dashofy E., Software Architecture: Foundations, Theory, and Practice. Wiley, 2010.

Notions ou résultats marquants du cours

Langages de description architecturale des systèmes à logiciel prépodérant et d'analyse de la sûreté et de la cybersécurité

Modalité d'évaluation

Contrôle continu (activités pratiques et exercices de recherche, présentations d'articles et devoirs).

Enseignant

Flavio Oquendo