---
# System prepended metadata

title: Untitled

---


### Pattern GRAPS 
**Expert en information:** La classe qui possède les informations nécessaires pour s’acquitter de la responsabilité. 
**Créateur:** Qui doit avoir la responsabilité de créer une nouvelle instance d’une classe donnée.
**Faible couplage:** Affecter les responsabilités des classes de sorte que le couplage/dépendance reste faible.
**Forte cohésion:** Attribue les responsabilités de telle sorte que la cohésion reste forte => Mesure informelle de l'étroitesse des liens et de la spécialisation des responsabilités d'un elt = ce qu'il fait 
**Fabrication pure:** Affecter un ensemble fortement cohésif à une classe artificielle ou de commodité, qui ne représente pas un concept du domaine (= entité fabriquée de toutes pièces). 
**Indirection:** Créer un objet qui sert d’intermédiaire entre d’autres composants ou services => indirection entre les composants
**Protection des variations:** encapsulation de données / vm / ... "protégé mais pas tout"
**Polymorphisme:** classe commune pour sous-classser / utiliser des classes abstraites  = HERITAGE 
**Contrôleur:** - aiguillage - fabrication pure - délégation des traitements / dispatcher - vérifie si tout est correct - si trop charger faire de la délégation - > controleur de cas d'utilisations (limiter la responsabilité)


### Design patterns
#### Patterns de création
**Singleton (Singleton):** singleton, getInstance 
**Fabrique (FactoryMethod):** fabrique à objet potentielement différent
**Fabrique abstraite (Abstract Factory):** fabrique qui appel les autres fabriques
**Monteur (Builder):** fabrique config+instanciation
**Prototype (Prototype):** polymorphisme à par cher , clone d'objet 

#### Patterns de structure
**Objet composite (Composite):**
**Adaptateur (Adapter):**
**Façade (Facade):**
**Proxy (Proxy):**
**Décorateur (Decorator):**

### Patterns architecturaux
Architecture multi-tiers
Modèle-Vue-Contrôleur
Inversion de Contrôle (IoC)

### Méthode en V 

Méthode dans laquelle l’équipe réalise le projet en allant de la première étape « analyse des besoins et faisabilité » à la dernière étape « recette » de façon linéaire et effectue des vérification de validation à chaque échellons.

-> Voir : https://forge.univ-lyon1.fr/matthieu.moy/mif01-2020/-/blob/master/01-introduction-handout.pdf  : Numero 25 : 

### Méthode Agile 

Une méthode de conceptions dans laquelle les projets sont divisés en éléments appelées user stories, qui sont ensuite organisées et hiérarchisées avant la livraison successive en cycles appelés itérations.

### Méthode Scrum 

Methode de conception qui fonctionne avec des sprints(= périodes courtes durant laquelle un certain nombre de tâches doivent être executés). En début de projet on découpe tout le projet sous la forme de plusieurs sprint lors de réunion entre le chef d'équipe, le chef de projet, et les clients. Si un sprint est validé, alors on passe au sprint suivant et on les enchaînes jusqu'à la fin du projet, si un sprint n'est pas validé on le reprend et on continu jusqu'à sa validation.

-> Voir : https://forge.univ-lyon1.fr/matthieu.moy/mif01-2020/-/blob/master/08-agilite-slides.pdf : Numéro 33 : Etape d'un Sprint (important)

### Exemple: Test unitaire 
```
public class MaClasseDeTest {
	@BeforeEach
	public void methodeAppeleeAvantChaqueTest() { ... }

	@AfterEach
	public void methodeAppeleeApresChaqueTest() { ... }

	@BeforeAll
	public static void methodeAppeleeAvantTousLesTests() { ... }

	@AfterAll
	public static void methodeAppeleeApresTousLesTests() { ... }

	@Test
	public void unTest() {
		// Arrange
        ... 

		// Act
		...
 
		// Assert
		...
    }
}
```


### Exemple: Cas d'utilisation 
**Titre:** CU1 le client s'enregistre sur ffound
**Portée:** ffound 
**Niveau:** Stratégique 
**Acteur principal:** le client 
**Déclencheur:** le client découvre le service 
**Garanties minimales:** le client a un compte. 
**Garanties de succès:** le client a enregistré des objets sur le site. 
**Scénario nominal:**
1. L'utilisateur s'inscrit sur le site 
2. L'utilisateur commande des autocollants. 
3. ffound envoie des autocollants. 
4. L'utilisateur attache les autocollants à ses objets. 
5. L'utilisateur enregistre les identifants sur le site. 

**Extensions:** 
2a Les autocollants sont trop chers ou ne correspondent pas aux attentes/besoins de l'utilisateur. Il attend une nouvelle version. 
5a L'utilisateur utilise son téléphone portable pour enregistrer les autocollants en scannant le QRcode

### Exemple: User - Story 
En tant qu'enseignant, 
je souhaite pouvoir saisir mes notes en ligne 
afin de gérer les validations d'UE automatiquement.

![1](https://i.imgur.com/WVgntsP.jpg)
![2](https://i.imgur.com/LWezAj8.png)
![3](https://i.imgur.com/WJNbBJa.png)
![4](https://i.imgur.com/DyuIEld.png)
![5](https://i.imgur.com/1zWegrT.png)
![6](https://i.imgur.com/wmlErRP.jpg)
![7](https://i.imgur.com/I4fRJZi.jpg)
![8](https://i.imgur.com/9No5TTv.jpg)
![9](https://i.imgur.com/106Ny6H.jpg)


```
public class NetworkManager{

int a;

private static FileStreamer myFileStream = new FileStream(args);


public NetworkManager()
{
    myFileStream.getFile(...);
}
}

main()
{
Maclass class1 = new Maclass();
class1.a = 8;
MaClass.b = 10;

EntityNpc.path

Maclass class2 = new Maclass();

sop(MaClass.b) // 10;
sop(class2.b) // 10;

}
```
    