Commit 30c30a89 authored by Fabrice's avatar Fabrice
Browse files

ajout fiche regex

parent 54071d26
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
- [Fiche 8 Programmation bash Structures itératives](Systeme-Exploitation/Fiche8-ProgrammationBash-StructuresIteratives.md)
- [Fiche 9 Programmation bash Fonctions](Systeme-Exploitation/Fiche9-ProgrammationBash-Fonctions.md)
- [Fiche 10 Programmation Powershell](Systeme-Exploitation/Fiche10-ProgrammationPowerShell.md)
- [Fiche 11 Regex](Systeme-Exploitation/Fiche11-Regex.md)

### Front-end web HTML CSS JavaScript
- [Fiche 1 Notions de base HTML](Front-end-web-HTML-CSS-JS/Fiche1-HtmlNotionsDeBase.md)
+115 −0
Original line number Diff line number Diff line
# Bloc 1 - SE Fiche 11 - Expressions régulières, `awk`

## Bases 
- `abc` → cherche "abc"  
  - Exemple générique : `echo "abc123" | grep -E "abc"`  
  - Avec awk :  
    ```bash
    echo "abc123" | awk '/abc/ {print $0}'
    ```
- `.` → n’importe quel caractère  
  - Exemple générique : `"a.c"` → correspond à `"abc"`, `"a9c"`  
  - Avec awk :  
    ```bash
    echo "abc a9c a-c" | awk '/a.c/ {print $0}'
    ```
- `^` → début de ligne  
  - Exemple générique : `^Bonjour`  
  - Avec awk :  
    ```bash
    echo -e "Bonjour\nSalut Bonjour" | awk '/^Bonjour/ {print $0}'
    ```
- `$` → fin de ligne  
  - Exemple générique : `fin$`  
  - Avec awk :  
    ```bash
    echo -e "C’est la fin\nfinir" | awk '/fin$/ {print $0}'
    ```



## Quantificateurs
- `*` → 0 ou plusieurs fois  
  - Exemple générique : `ab*``"a"`, `"ab"`, `"abb"`  
  - Avec awk :  
    ```bash
    echo -e "a ab abb abbb" | awk '/ab*/ {print $0}'
    ```
- `+` → 1 ou plusieurs fois  
  - Exemple générique : `ab+``"ab"`, `"abb"`  
  - Avec awk :  
    ```bash
    echo -e "a ab abb" | awk '/ab+/ {print $0}'
    ```
- `?` → 0 ou 1 fois  
  - Exemple générique : `ab?``"a"` ou `"ab"`  
  - Avec awk :  
    ```bash
    echo -e "a ab abb" | awk '/ab?/ {print $0}'
    ```
- `{n}` → exactement n fois  
  - Exemple générique : `\d{4}``"2025"`  
  - Avec awk :  
    ```bash
    echo -e "123 2025 198" | awk '/[0-9]{4}/ {print $0}'
    ```
- `{n,}` → au moins n fois  
  - Exemple générique : `a{3,}``"aaa"`, `"aaaa"`  
  - Avec awk :  
    ```bash
    echo -e "aa aaa aaaa" | awk '/a{3,}/ {print $0}'
    ```
- `{n,m}` → entre n et m fois  
  - Exemple générique : `\d{2,4}``"12"`, `"123"`, `"1234"`  
  - Avec awk :  
    ```bash
    echo -e "1 12 123 12345" | awk '/[0-9]{2,4}/ {print $0}'
    ```

## Classes de caractères
- `[abc]` → un caractère parmi a, b, c  
  - Avec awk :  
    ```bash
    echo -e "a b c d" | awk '/[abc]/ {print $0}'
    ```
- `[^abc]` → un caractère sauf a, b, c  
  - Avec awk :  
    ```bash
    echo -e "a d e" | awk '/[^abc]/ {print $0}'
    ```
- `[0-9]` → un chiffre  
  - Avec awk :  
    ```bash
    echo "42 ans" | awk '/[0-9]/ {print $0}'
    ```
- `[a-z]` → une minuscule  
  - Avec awk :  
    ```bash
    echo "Chat" | awk '/[a-z]/ {print $0}'
    ```

## Groupes & alternatives
- `(abc)` → groupe capturant `"abc"`  
  - Avec awk :  
    ```
    echo "abcabc" | awk '/(abc)+/ {print $0}'
    ```
- `a|b` → "a ou b"  
  - Avec awk :  
    ```
    echo -e "chat chien oiseau" | awk '/chat|chien/ {print $0}'
    ```


##  Exemples pratiques
- Code postal (5 chiffres) :  
  ```
  echo -e "15000\n75001\n123" | awk '/^[0-9]{5}$/ {print $0}'
  ```
- Mot avec majuscule au début :  
  ```
  echo -e "Paris\nparis" | awk '/^[A-Z][a-z]+$/ {print $0}'
  ```
- Email simple :  
  ```
  echo -e "test@mail.com\nabc@xyz" | awk '/^[A-Za-z0-9_]+@[A-Za-z0-9_]+\.[A-Za-z]+$/ {print $0}'
+66 −19
Original line number Diff line number Diff line
# Bloc 2 - Méthodes Fiche 1 : processus et produits de conception - Introduction
# Bloc 2 - Méthodes  
## Fiche 1 : Processus et produits de conception – Introduction

**Une organisation** est un groupe d'individus organisé en vue de réaliser une action collective (son objectif), à l'aide de ressources.  
**Un système** est un ensemble d'éléments et de leurs inter-relations relevant d'un domaine défini par l'objectif attribué au système.  
➡️ Voir fiche récapitulative **Bloc 3 – Information et SI**

 **Une organisation** est un groupe d'individus organisé en vue de réaliser une action collective (son objectif), à l'aide de ressources. **Un système** est un ensemble d'éléments et de leurs inter-relations relevant d'un domaine défini par l'objectif attribué au système. 
-> voir fiche récapitulative Bloc 3 Information et SI 

## Qu'est-ce qu'un projet ?

[Un projet est un ensemble d'activités organisées en phases ou étapes et formant une unité de gestion permettant d'atteindre un objectif. Cet objectif doit être clairement exprimé, et doit présenter des caractéristiques qui lui sont propres.](https://www.editions-eni.fr/open/mediabook.aspx?idR=b636a0a1fd9a359858642769e7245494)
> *Un projet est un ensemble d'activités organisées en phases ou étapes et formant une unité de gestion permettant d'atteindre un objectif. Cet objectif doit être clairement exprimé, et doit présenter des caractéristiques qui lui sont propres.*  
> [Source : ENI, Gestion de projet](https://www.editions-eni.fr/open/mediabook.aspx?idR=b636a0a1fd9a359858642769e7245494)

Un projet a :
- **un début et une fin**,  
- **un objectif mesurable, précis et spécifique**,  
- **un élément de risque** (ne pas aboutir dans les délais ou avec la qualité attendue).  

Un projet n'est **pas** une activité routinière.  
L'objectif d'un projet est la réalisation d'un **bien** ou d'un **service** conforme aux besoins d'un client (personne physique ou morale).

Un projet a un début, une fin et un objectif mesurable. Cet objectif doit être précis et spécifique. On ne parle pas de projet dans le cas d'activités routinières. Un projet comporte aussi un élément de risque, le risque de ne pas être exécuté dans les temps impartis. 
## Les acteurs du projet

L'objectif d'un projet est donc la réalisation d'un bien ou d'un service conformément aux besoins d'une personne morale ou physique.
- **Maître d'ouvrage (MOA)** : représentant ou comité qui porte le projet.  
  - Définit les besoins.  
  - Élabore le *cahier des charges*.  

Le maître d'ouvrage est une personne particulière ou un comité de pilotage de projet dans une entreprise. Il est le représentant et promoteur du projet, il en fixe les objectifs au travers d'un document appelé le cahier des charges. 
- **Maître d'œuvre (MOE)** : directeur ou responsable de projet.  
  - Coordonne la mise en œuvre.  
  - Est responsable du résultat.  

Le maître d'œuvre est le directeur (ou responsable) de projet. C'est le coordinateur de la mise en œuvre du projet. Il est responsable du résultat.
- **Contractants et techniciens** : développeurs, intégrateurs, administrateurs, analystes-programmeurs.  
  - Réalisent concrètement le projet selon leurs compétences.  

Les contractants et techniciens (développeur, intégrateur, administrateur, analyste programmeur) sont chargés, en fonction de leurs compétences, de la réalisation d'une partie du projet. 

Le management d'un projet se fait selon le triptyque suivant :
## Le management de projet

Il repose sur le triptyque classique :  

![image-20211119105230587](intro-img/image-20211119105146099.png)  

Il existe plusieurs méthodes pour gérer un projet. Une méthode est un ensemble de modèles qui régissent le processus et le produit. 

Vous avez déjà vu dans les cours **des modèles de produits** : le modèles relationnel, le diagramme de classes UML, etc. L'objet de ce paragraphe est de montrer différentes quand et comment utiliser ces modèles de produits avec **des modèles processus** différents.
## Qu'est-ce qu'une méthode ?

Une **méthode** est un ensemble de modèles qui régissent à la fois :  
- le **processus***comment on produit* (organisation, activités, rôles, séquences),  
- le **produit***ce que l'on produit* (artefacts, livrables, modèles).  

📌 Exemple en **méthodes agiles** :  
- **Scrum** : processus très détaillé (sprints, rôles, cérémonies) mais produit décrit de façon simple (backlogs, incrément).  
- **XP** : processus plus léger mais produit très précis (tests unitaires, refactoring, code de qualité).  
- **Kanban** : focalisé sur le flux de processus (tableau, limites WIP, mesure du lead-time).  
- **DevOps** : combine processus d'automatisation (CI/CD) et produit orienté qualité technique (infrastructure as code, monitoring).  
- **Lean Software Development** : principes globaux d'optimisation du processus *et* de qualité intégrée dans le produit.  

👉 On comprend ainsi qu'**une méthode ne se réduit pas à un "mode d'emploi"** :  
- Elle structure *comment on travaille* (**processus**).  
- Elle définit *ce qu'on produit et à quoi ça doit ressembler* (**produit**).  

---

## Pourquoi choisir une méthode ?

- Pour donner un **cadre commun** aux acteurs du projet.  
- Pour permettre une **action collective organisée** selon des règles claires.  
- Pour maintenir une continuité, même si les acteurs changent en cours de route.  

Il n'existe pas une méthode absolue qui garantit la finalité du projet. Cependant le choix d'une méthodologie pour conduire un projet, aussi contraignant peut-il paraître, est un atout permettant à tous les acteurs de projet de mener conjointement une action organisée selon des règles clairement exprimées. Cette méthodologie commune est d'autant plus importante que les acteurs du projet sont parfois amenés à changer en partie au cours du projet.
Il n'existe pas de méthode "miracle".  
Mais un choix méthodologique adapté au contexte est un **atout majeur**.  


## Catégories de modèles de processus

Nous verrons deux catégories de modèles de processus 
Dans ce cours, nous verrons deux grandes familles de processus :  

- les modèles classiques (voir [cette fiche](processus/Fiche2 Processus traditionnels de création logiciel.md))
- les modèles "agiles" (voir [cette fiche](processus/Fiche3 Processus RAD et agiles.md))
1. **Les modèles classiques**  
   - Ex. : cycle en V, modèle en cascade, modèle itératif.  
   - Voir [fiche dédiée](processus/Fiche2 Processus traditionnels de création logiciel.md).  

Ainsi qu'une [fiche supplémentaire ](processus/Fiche4 Qualité des projets.md) discutant de la qualité dans un projet informatique.
2. **Les modèles agiles**  
   - Ex. : Scrum, XP, Kanban, Scrumban, DevOps, Lean Software Development.  
   - Voir [fiche dédiée](processus/Fiche3 Processus RAD et agiles.md).  

Et une fiche spécifique sur la [**qualité des projets**](processus/Fiche4 Qualité des projets.md).  

Pour modéliser les processus et les produits, on utilisera des diagrammes UML. C'est le sujet des fiches récapitulatives du dossier modélisation.
## Lien avec la modélisation

Pour représenter les **processus** et les **produits**, nous utiliserons des **diagrammes UML**, qui font l'objet des fiches récapitulatives du dossier *Modélisation*.