La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modèles darchitecture contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique.

Présentations similaires


Présentation au sujet: "Modèles darchitecture contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique."— Transcription de la présentation:

1 Modèles darchitecture contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique 2.0 France License

2 modèles du génie logiciel Cycle de développements Modèle en V Modèle en cascade Modèle en Spirale Modèle en Y Etc... Étude des Besoins Cahier des Charges Analyse de lActivité Maquettage Scenarii de travail Scenarii dutilisation Prototypage Diagrammes (UML) Programmation Architecture Logicielle Tests Évaluation

3 Architecture Conceptuelle Sert à la (retro)conception

4 Architecture Logicielle IEEE 1471 standard (2000) « The fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution » Autrement dit : Une architecture : ensemble organisé de composants + des relations + des principes directeurs Une architecture est le résutat dun processus Lenvironnement : participants (culture en qualité logicielle, outils, requis commercial… Finalité dune architecture communication (précision et non ambiguïté de la description) rétro-conception dun système existant évaluation (selon des critères qualité) Dictinction entre architecture et description darchitecture Maier (2001) « architecture is a concept of a system » Une architecture est un concept dun système : elle existe bien que non observable Une description darchitecture : représentation de ce concept pour une finalité donnée. Cest une entité concrète.

5 Architecture Logicielle Bass (1998) « The architecture of a computing system is a set of structures which comprise software components, the externally visible properties of these components and the relationships among them » Autrement dit : Plusieurs points de vue sur une architecture (cf.Architecture en bâtiment) Un point de vue : une structure, sa représentation pour une finalité donnée Propriétés dun composant : description du comportement attendu Services fournis ou requis,Performance,Protocole de communication Propriétés observables de lextérieur : un composant est une unité dabstraction, une unité de déploiement un service, un module, un bibliothèque, un processus, un procédure, un objet, un agent, etc., sont des composants Relations -> connexion -> connecteurs (appel procédural, RMI, socket, etc.) Composant Connecteur

6 Architecture Conceptuelle Sert à la (retro)conception

7 Méthodologie de conception des interfaces Design Pattern, Motifs de conception Abstraction des squelettes dapplications Découpage de lapplication en composants autonomes Schémas de programmation Modèle dArchitecture Logicielle But : améliorer la qualité du logiciel en robustesse, modularité, réutilisabilité Démarche : Identification de Patrons à partir des spécifications Développement orienté objet avec communication par messages

8 Décomposition modulaire Noyau (Fonctionnel) Modèle (Applicatif) Fonctions Objets Métier Services

9 Notre TP

10 Interface JFrame JMenu JList JLabel JSlider JPanel (s) Modèle ImageLibrary ImageItem

11 Pourquoi une architecture spécifique? Interfaces graphiques WIMP Standardisation de l aspect (look) et du comportement (feel) Nouvelle philosophie de programmation Contrôle utilisateur Séparation Interface et Noyau fonctionnel Architectures de type Arch

12 Architecture Conceptuelle Sert à la (retro)conception Séparation entre la sémantique et son utilisation portabilité (device independant) réutilisabilité plusieurs interfaces (flexibilité, plateformes, etc) Personnalisation (designer, utilisateur) Communication entre lapplication et la présentation : contrôleur de dialogue 3 composants maintenant...

13 Modélise les interfaces jusque 1985 Pas de séparation en composant logiques et implémentation le modèle de Seeheim 1985 Presentation Component Dialog Control Application Interface Model User Application (niveau sémantique) (niveau syntaxique) (niveau lexical) régule les communications entre lapplication et linterface apparence de linterface et E/S utilisateur User vue de la sémantique qui est fournie pour linterface optimisation du feedback (retours visuels, dessins à main levée, etc) bypass

14 transfert de structure de données explicites modèle Arch - Slinky 1992 Plus de couches Plus conceptuel Bien adapté pour la structure fonctionnelle Domaine Application Functionnal Core Domain-specific component Adaptateur Functionnal Core Adapter (Virtual Application Layer) Contrôleur de Dialogue Présentation Logical Presentation Component (Virtual Toolkit) Interaction Interaction Toolkit Component Physical Presentation Component Domain Objects Logical Presentation ObjectsPossibly adapted Domain Objects presentation widgets look and feel application noyau fonctionnel régulation des tâches séquencement de linteraction liés au modèle de tâches Physical Interaction Objects modifiable portable (versus efficacité) modèle utilisateur versus modèle système réorganisation des données Semantic enhancement adaptation aux toolkits de la plateforme visée Awt, Xvt, Swing, Views

15 Exemple Gestion de Comptes… Noyau Fonctionnel Application Bancaire Gestion de comptes Adaptateur Contrôleur de Dialogue Gestion des évènements Séquencement des actions Présentation Interaction JTable look & feel Relevés de comptes Table de données Portion de relevé DefaultTableModel

16 Exemple Calculatrice… Noyau Fonctionnel Application Bancaire Gestion de comptes Contrôleur de Dialogue Gestion des évènements Appel des opérations Interaction JButtons Chiffres chiffre

17 Notre TP

18 Noyau Fonctionnel ImageLibrary ImageItem Adaptateur ImageIcon + String CurrentIndex Contrôleur de Dialogue Gestion des évènements Listeners Swing Présentation ImageIcon JFrame + JPanel Layout managers Interaction JSlider + JList + JMenu + JPanel look & feel

19 Agent Based Models Modèles basés sur des agents Système interactif = ensemble dunités computationnelles (agents) Agent capacité à réagir et à gérer des événements caractérisé par un état possède une capacité dexpertise (rôle) relation utilisateur interacteur / objet dinteractif Système interactif = agents réactifs (<> agents cognitifs) MVC, PAC, Clock, C2, etc... Modèle même principe que les précédents, avec une granularité plus fine (par collections)

20 modèle MVC 1987 (Smalltalk) Model View Controller ouput devices input devices user application semantics noyau fonctionnel gestion de linteraction en entrée représentation graphique

21 Implémentation Classique

22 MVC en Java Modèle de façon générale : Observer/Observable dans java.util MVC dans Swing : JComponent = model + delegate delegate = V + C

23 PAC 1987 (Joëlle Coutaz) Presentation combine Input/Output ( MVC) Control pilote le dialogue et la cohérence entre le modèle et sa représentation ( MVC) Communication entre agents ( MVC) Pas lié à un environnement de programmation ( MVC), approche objet tout de même Plus conceptuel encore (moins dépendant de limplémentation) que MVC Abstraction Presentation Control

24 MVC en Java ? Extrait du tutoriel MVC Swing (Sun) JTextField (textField) JTextArea (textList) +JScrollPane textField.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Append the textField's text to textList textList.append(textField.getText()); textList.append("\n"); textField.setText(""); // Reset the textField } }); // ENTER key causes an ActionEvent

25 MVC en Swing JTextField (textField) JTextArea (textList) JTextArea (avgField) solutions ? listener textField vers avgField listener textList vers avgField listener contenant la mise à jour des deux éléments textList et avgField MVC dans tout ça ? où est le modèle ?

26 MVC Class Model { int [ ] liste; void addElement(int) int getElement(int ); int getAverage(); }

27 Observer Design Pattern One to many

28 découpage JTextField Modèle JTextArea

29 découpage Modèle setValeur(int) getValeur() valeur JTextArea Observer Update() Observable Attach(Observer) Notify() JTextField

30 Modele dentiers import java.util.Observable; public class Exo1Model extends Observable { public int [ ] liste; public Exo1Model() { … } public void setValeur(int x) { […] // notification des modifications dans la classe Observer setChanged(); notifyObservers(); } Modèle setValeur(int) getValeur() valeur Observable Attach(Observer) Notify()

31 Une vue JTextArea public class Exo1Vue extends JTextArea implements Observer { public Exo1Vue(String text) { super(text); } public void setVue(int avg){ setText(String.valueOf(avg)); } public void update(Observable obs,Object obj) { Exo1Model mod = (Exo1Model) obs; // prendre la bonne habitude de tester la compatibilité des types if (obs instanceof Exo1Model) setVue(mod.getAverage()); } JTextArea Observer Update()

32 Le principal class Exo1Fenetre extends JFrame { Exo1Model model; public Exo1Fenetre(){ model = new Exo1Model(); […] // ajout des connections entre le modèle et les vues pour que ces dernières soient mises à jour model.addObserver(jtextareaavgr); model.addObserver(jtextarealist); } Observer Update() Observable Attach(Observer) Notify()


Télécharger ppt "Modèles darchitecture contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique."

Présentations similaires


Annonces Google