Architecture logicielle & Design patterns

Course Features

Course Details

Architecture logicielle & Design patterns  GTI3003
Enseignant:
Email:
Durée totale du cours: 25 H
Semestre : 2
Nombre de crédits : 2
Modules spécialisés Modules de base Sciences et techniques de l'ingénierie Préparation à la carrière professionnelle
    X  
 
Nombre d’heures Activités hors classe  
45 38  
cours TD TP
16   9
 
Code : GTI3003 Architecture logicielle & Design patterns  

Objectifs d’apprentissage et compétences visées

L'architecture logicielle s'intéresse à la définition d'une solution claire et structurée qui répond au mieux aux exigences techniques et opérationnelles, tout en optimisant les attributs de qualité courants comme la performance, la sécurité et l'interopérabilité. Elle résulte en une série de décisions qui reposent sur un large ensemble de facteurs, chacune d'entre elles pouvant avoir un impact considérable sur la qualité, la performance, l'entretien et le succès global du logiciel. La conception architecturale doit détailler les composants, la structure et les connecteurs du système, permettant de répondre à tous les scénarios et situations d'utilisation, tout en masquant les détails d'implémentation. Ce cours vise à détailler cette notion d'architecture logicielle en présentant ses concepts clefs et ses langages associés. Il présente les principaux patrons de conception de GoF décrivant des solutions éprouvées afin de résoudre des problèmes d’architectures de logiciels.

Contenu du  cours

Semaine 1-2: Introduction à l'architecture logicielle Concepts de base des architectures logicielles : couches, composants, modèles. Rôle des architectures logicielles dans les applications de télécommunications. Principes de conception orientée objet. Semaine 3-4: Principes de conception SOLID Single Responsibility Principle (SRP) : séparation des responsabilités. Open-Closed Principle (OCP) : ouverture à l'extension, fermeture à la modification. Liskov Substitution Principle (LSP) : substituabilité des sous-types. Interface Segregation Principle (ISP) : interfaces spécifiques aux clients. Dependency Inversion Principle (DIP) : dépendance sur les abstractions, pas les détails. Semaine 5-6: Modèles d'architecture logicielle Architecture en couches (Layered Architecture) : présentation, logique métier, accès aux données. Architecture MVC (Model-View-Controller) : découplage des vues et de la logique métier. Architecture MVVM (Model-View-ViewModel) : modèles de liaison de données. Architecture de microservices : principes et avantages dans les télécommunications. Semaine 7-8: Design patterns créationnels Singleton : garantir une seule instance d'une classe. Factory Method : déléguer la création d'objets aux sous-classes. Abstract Factory : créer des familles d'objets liés. Semaine 9-10: Design patterns structurels Adapter : adapter des interfaces incompatibles. Decorator : ajouter des fonctionnalités dynamiquement aux objets. Facade : fournir une interface simplifiée à un sous-système complexe. Semaine 11-12: Design patterns comportementaux Observer : définir une dépendance entre les objets pour que le changement dans l'un entraîne une mise à jour dans d'autres. Strategy : définir une famille d'algorithmes interchangeables. Template Method : définir le squelette d'un algorithme dans une classe mère, laissant les étapes spécifiques aux sous-classes. Semaine 13-14: Design patterns additionnels et antipatterns Builder : séparer la construction complexe d'un objet de sa représentation. Proxy : fournir un substitut ou une interface de remplacement pour contrôler l'accès à un objet. Antipatterns : étudier les erreurs courantes en conception et comment les éviter. Semaine 15-16: Études de cas et projets Analyse de cas réels d'applications de télécommunications et d'autres domaines. Projets individuels ou en groupe impliquant l'application de Design patterns à des scénarios spécifiques.

Méthodes d’enseignement et d’apprentissage

Enseignement frontal avec des exemples à résoudre en commun. Travaux pratiques (laboratoire) Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)

Connaissances et compétences pré-requises

  • Génie Logiciel – UML – Méthodes de développement logiciel
  • Programmation Orienté Objet (Java ou .Net)

Références bibliographiques

Un polycopié (Notes du cours) de l’enseignant sera disponible. Autres références sous forme de tutoriaux, manuels ou documents à télécharger relatives aux éléments de contenu. Les recommandations bibliographiques suivantes doivent être considérées : Jacques Printz Préface de Yves Caseau, « Architecture Logicielle : Concevoir des applications simples, sûres et adaptables », Dunod, Paris, 2006 ISBN : 2100499106. BASS, L., P. CLEMENTS et R. KAZMAN, « Software Architecture in Practice », 3ème  édition, Reading (Mass.), Addison Wesley Longman, Inc., 2013.

Modalité d’évaluation

100% Travaux pratiques (mini-projet avec présentation orale, examen TP, compte-rendu, …)

Résultats d'apprentissage

Après avoir réussi ce sujet, les étudiants doivent avoir les compétences suivantes :
Compréhension des architectures logicielles : Expliquer les concepts fondamentaux des architectures logicielles, y compris les différentes couches, les modèles d'architecture et les principes de conception. Connaissance des principaux Design patterns : Identifier et expliquer les principaux Design patterns, tels que Singleton, Factory, Observer, Strategy, et leur utilisation dans la conception logicielle. Analyse et conception orientées objet : Appliquer les concepts de la programmation orientée objet pour analyser et concevoir des systèmes modulaires et extensibles. Utilisation d'architectures multi-niveaux : Concevoir des architectures multi-niveaux pour les applications de télécommunications en identifiant les différentes couches (présentation, logique métier, accès aux données). Conception modulaire et découplage : Concevoir des composants logiciels modulaires qui favorisent la réutilisabilité, la maintenance et la gestion des évolutions. Application des principes SOLID : Appliquer les principes SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) pour créer des logiciels bien structurés et évolutifs. Utilisation de Design patterns : Appliquer divers Design patterns pour résoudre des problèmes courants de conception, tels que la création d'objets, la gestion des dépendances et l'organisation du code. Architecture de microservices : Comprendre les principes des architectures de microservices et leur pertinence dans le contexte des télécommunications. Conception de systèmes évolutifs : Concevoir des systèmes logiciels capables de s'adapter aux évolutions futures en utilisant des principes d'extensibilité et de modularité. Prise de décision en conception : Évaluer et choisir les meilleures solutions architecturales et de conception en fonction des exigences fonctionnelles et non fonctionnelles des applications de télécommunications. Gestion de la complexité : Gérer la complexité logicielle en utilisant des techniques d'abstraction, de modularité et de réutilisabilité. Travail en équipe : Collaborer efficacement avec d'autres membres de l'équipe pour concevoir et mettre en œuvre des architectures logicielles robustes et cohérentes. Analyse et résolution de problèmes : Identifier et résoudre les problèmes de conception liés à l'architecture logicielle en utilisant les Design patterns appropriés. Pensée critique et créativité : Appliquer une pensée critique pour évaluer et adapter les architectures et les Design patterns aux besoins spécifiques des applications de télécommunications. Présentation et communication : Présenter et communiquer efficacement les choix architecturaux et de conception à travers des rapports, des diagrammes et des discussions.
This course does not have any sections.

More Courses by this Instructor


Proud of NASCAR and its supporters and fans. They won put up with disrespecting our Country or our Flag they said it loud and clear! words Friday and Saturday sparked a massive show of defiance Sunday as more than 200 NFL players protested by choosing not to stand for the national anthem. Many coaches locked arms with the players. Goal was to provide cheap china jerseys open dialogue and communication. We listened to one another. We believe it the best way to work through any issue we are facing, on and off the field, owners Terry and Kim Pegula said in a statement distributed by the Bills. Trump remarks were divisive and disrespectful to the entire NFL community, but we tried to use them as an opportunity to further unify our team and our organization. Our players have the freedom to express themselves in a respectful and thoughtful manner and we all agreed that our sole message is to provide and to promote an environment that is focused on love and equality. "Within hours, cheap jerseys certainly, and probably less, the Ranger regiment officers, high ranking officers back in the States were conspiring to cover this up," Krakauer says. military's highest honors, immediately began moving through the Army ranks something that is not done cheap nfl jerseys for deaths by friendly fire, Krakauer says. 'Prairie niggers' is an insult. Those are very upsetting to our kids. But 'Redskins' is an honorable name we wear with pride. He wondered how to tell the Willpinit Redskins the "name they wear proudly across their chests is insulting them. Because they have no idea.". According to the "Princeton Review," there are no prerequisites for sports management positions, but most general managers in the NFL have similar backgrounds as former scouts, accountants or athletes.Start in SchoolGMs in the NFL must have a passion for the game. They typically have experience either playing or coaching football. "This pro football has been personally hand cheap china jerseys signed by Hall of Fame defensive tackle Joe Greene with the inscription ""HOF 87"". This product is officially licensed by the National Football League and comes with an individually numbered; tamper evident hologram from Mounted Memories. To ensure authenticity, the hologram can be reviewed online. This oakley sunglasses sale process helps to ensure that the product purchased is authentic and eliminates any possibility of duplication or Retro Jordans fraud. " Setting Point Spreads, OddsOddsmakers do more than predict the outcome of games. They weigh myriad factors to determine which team is favored by how many points. In individual sports or group events, they set odds on which individual or team is most likely to win. They set odds that spread the betting encouraging bets on the underdogs and discouraging bets on heavy favorites. Their goal is to create higher betting volume and more wins than losses for the sports cheap jerseys book.
Need Help? Chat with us