0% ont trouvé ce document utile (0 vote)
89 vues12 pages

Correction EPS

Le document présente une modélisation structurée et orientée objet pour une bibliothèque et une exploitation agricole, incluant des modèles conceptuels de données (MCC, MCD, MCT) et des diagrammes UML. Il aborde également des algorithmes pour des calculs divers et des manipulations de données avec des structures avancées comme les listes chaînées. Enfin, il traite des concepts de SGBD, de SQL, et des principes du génie logiciel, ainsi que des étapes de gestion de projets informatiques.

Transféré par

nzaideurayan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
89 vues12 pages

Correction EPS

Le document présente une modélisation structurée et orientée objet pour une bibliothèque et une exploitation agricole, incluant des modèles conceptuels de données (MCC, MCD, MCT) et des diagrammes UML. Il aborde également des algorithmes pour des calculs divers et des manipulations de données avec des structures avancées comme les listes chaînées. Enfin, il traite des concepts de SGBD, de SQL, et des principes du génie logiciel, ainsi que des étapes de gestion de projets informatiques.

Transféré par

nzaideurayan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

## **PARTIE 1 : MODELISATION STRUCTUREE « MERISE » (25 points)**

### 1. Réaliser le MCC (Modèle Conceptuel de Données) (5 points)

Le MCC est une représentation abstraite des données de la bibliothèque.


Voici les entités et leurs relations :

- **Entités :**

- Exemplaire (CodeExemplaire, DateAcquisition, DureeVieEstimee)

- Ouvrage (CodeOuvrage, Auteur, Titre, ValeurRemplacement, Resume,


MotsCles)

- Emprunteur (CodeEmprunteur, Nom, Prenom, Adresse, Email)

- Pret (CodePret, CodeExemplaire, CodeEmprunteur, DateRetourPrevu)

- **Relations :**

- Un **Exemplaire** est lié à un **Ouvrage** (1:1).

- Un **Pret** est lié à un **Exemplaire** et un **Emprunteur** (1:1 pour


chaque relation).

- Un **Emprunteur** peut emprunter jusqu'à 3 **Exemplaires** (1:N).

### 2. Réaliser le MCD (Modèle Conceptuel de Données) (8 points)

Le MCD est une représentation graphique des entités et de leurs relations.


Voici une description textuelle (vous pouvez le dessiner pour une meilleure
visualisation) :

- **Exemplaire** (CodeExemplaire, DateAcquisition, DureeVieEstimee,


CodeOuvrage)

- **Ouvrage** (CodeOuvrage, Auteur, Titre, ValeurRemplacement, Resume,


MotsCles)

- **Emprunteur** (CodeEmprunteur, Nom, Prenom, Adresse, Email)

- **Pret** (CodePret, CodeExemplaire, CodeEmprunteur, DateRetourPrevu)


- **Relations :**

- **Exemplaire** → **Ouvrage** (1:1)

- **Pret** → **Exemplaire** (1:1)

- **Pret** → **Emprunteur** (1:1)

- **Emprunteur** → **Pret** (1:N)

### 3. Réaliser le MCT pour Inscription, Prêt et Retour (12 points)

Le MCT (Modèle Conceptuel de Traitements) décrit les traitements associés


aux opérations de la bibliothèque.

#### a. Inscription (4 points)

- **Entrées :** Nom, Prénom, Adresse, Email

- **Sorties :** CodeEmprunteur

- **Traitement :** Enregistrer les informations de l'emprunteur dans la


base de données et générer un CodeEmprunteur unique.

#### b. Prêt (4 points)

- **Entrées :** CodeExemplaire, CodeEmprunteur

- **Sorties :** DateRetourPrevu

- **Traitement :**

1. Vérifier que l'emprunteur n'a pas déjà 3 exemplaires empruntés.

2. Calculer la DateRetourPrevu (DateEmprunt + 3 semaines).

3. Enregistrer le prêt dans la base de données.

#### c. Retour (4 points)

- **Entrées :** CodeExemplaire

- **Sorties :** Confirmation de retour

- **Traitement :**

1. Vérifier l'état de l'exemplaire.

2. Si l'exemplaire est en bon état, supprimer l'enregistrement du prêt.


3. Si l'exemplaire est perdu, envoyer un courrier à l'emprunteur pour
demander le paiement de la valeur de remplacement.

---

## **PARTIE II : MODELISATION ORIENTEE OBJET « UML » (25 points)**

### 1. Réaliser le Diagramme de classe (8 points)

Les classes principales sont :

- **OuvrierAgricole** (id, nom, prenom, tempsTravail)

- **OperationCulturale** (id, typeOperation, description)

- **OperationPhytosanitaire** (id, operationCulturale, maladiesVisees,


stadePhenologique, methodeTraitement, observation)

- **ChefExploitation** (id, nom, prenom)

- **Chercheur** (id, nom, prenom)

- **Exploitation** (id, nom, chefExploitation)

Les relations :

- **OuvrierAgricole** → **OperationCulturale** (1:N)

- **OperationPhytosanitaire** → **OperationCulturale** (1:1)

- **ChefExploitation** → **Exploitation** (1:1)

- **Chercheur** → **Exploitation** (1:N)

### 2. Réaliser le diagramme de cas d'utilisation (8 points)

Les cas d'utilisation principaux sont :

- **Saisir temps de travail** (OuvrierAgricole)

- **Valider saisie mensuelle** (ChefExploitation)

- **Notifier validation** (Chercheur)

- **Imprimer état des travaux** (ChefExploitation)

- **Analyser données annuelles** (Chercheur)


### 3. Réaliser le diagramme de séquence (9 points)

Pour le cas d'utilisation "Valider saisie mensuelle" :

1. Le **ChefExploitation** vérifie les temps de travail saisis par les


ouvriers.

2. Il corrige les erreurs éventuelles.

3. Il saisit les opérations du mois dans l'application.

4. Le **Chercheur** reçoit une notification par email.

5. Le **Chercheur** valide les données.

6. Le **ChefExploitation** imprime les états mensuels.

---

## **PARTIE 3 : ALGORITHMIQUE ET STRUCTURE DE DONNEES (20


points)**

### A. Écriture d'algorithmes (9 points)

#### 1. Détermination du prix à payer (4 points)

```pseudo

Fonction prixapayer(qte : entier, pu : reel) : reel

tot = qte * pu

Si tot > 500 Alors

port = 0

Sinon

port = 0.02 * tot

FinSi

Si tot >= 200 et tot <= 1000 Alors

rem = 0.05 * tot


SinonSi tot > 1000 Alors

rem = 0.1 * tot

Sinon

rem = 0

FinSi

pap = (tot + port) - rem

Retourner pap

FinFonction

```

#### 2. Calcul de la factorielle (2 points)

```pseudo

Fonction facto(n : entier) : entier

Si n < 0 Alors

Afficher "Erreur : nombre négatif"

Retourner 0

FinSi

resultat = 1

Pour i de 1 à n Faire

resultat = resultat * i

FinPour

Retourner resultat

FinFonction

```

#### 3. Détermination de la note maximale et minimale (3 points)


```pseudo

Procedure maximini(tab : reel, n : entier)

max = tab[0]

min = tab[0]

somme = 0

produit = 1

Pour i de 0 à n-1 Faire

Si tab[i] > max Alors

max = tab[i]

FinSi

Si tab[i] < min Alors

min = tab[i]

FinSi

somme = somme + tab[i]

produit = produit * tab[i]

FinPour

moyenne = somme / n

Afficher "Max : ", max

Afficher "Min : ", min

Afficher "Somme : ", somme

Afficher "Produit : ", produit

Afficher "Moyenne : ", moyenne

FinProcedure

```

### B. Structures de données avancées (11 points)


#### 1. Insertion en queue de liste chaînée (3 points)

```pseudo

Procedure insererEnQueue(liste : listeChainee, element : entier)

nouveauNoeud = CreerNoeud(element)

Si [Link] = NULL Alors

[Link] = nouveauNoeud

[Link] = nouveauNoeud

Sinon

[Link] = nouveauNoeud

[Link] = nouveauNoeud

FinSi

FinProcedure

```

#### 2. Insertion à une position donnée (5 points)

```pseudo

Procedure insererAPosition(liste : listeChainee, element : entier, position :


entier)

nouveauNoeud = CreerNoeud(element)

Si position = 1 Alors

[Link] = [Link]

[Link] = nouveauNoeud

Sinon

courant = [Link]

Pour i de 1 à position-2 Faire

courant = [Link]

FinPour

[Link] = [Link]

[Link] = nouveauNoeud
FinSi

FinProcedure

```

#### 3. Suppression à une position donnée (4 points)

```pseudo

Procedure supprimerAPosition(liste : listeChainee, position : entier)

Si position = 1 Alors

[Link] = [Link]

Sinon

courant = [Link]

Pour i de 1 à position-2 Faire

courant = [Link]

FinPour

[Link] = [Link]

FinSi

FinProcedure

```

---

## **PARTIE 4 : MANIPULATION DES DONNEES (10 points)**

### A. Questions de cours (4 points)

#### 1. SGBD (2.5 points)

- **Définition :** Un SGBD (Système de Gestion de Base de Données) est


un logiciel permettant de stocker, manipuler et gérer des données de
manière structurée.

- **Fonctions :**
- Création et gestion des bases de données.

- Insertion, mise à jour, suppression et recherche de données.

- Sécurité et gestion des accès.

- **Exemples :** MySQL, PostgreSQL.

#### 2. Formes normales (1.5 points)

- **1FN :** Chaque colonne contient des valeurs atomiques (indivisibles).

- **2FN :** Chaque colonne non-clé dépend de la clé primaire entière.

- **3FN :** Chaque colonne non-clé dépend uniquement de la clé primaire


(pas de dépendances transitives).

### B. Langage SQL (6 points)

#### 1. Vérification de la 3FN (1 point)

Les relations respectent la 3FN car :

- Chaque colonne non-clé dépend uniquement de la clé primaire.

- Il n'y a pas de dépendances transitives.

#### 2. Liste des clients par ordre alphabétique (1 point)

```sql

SELECT * FROM Client ORDER BY nom ASC;

```

#### 3. Liste des produits non commandés (2 points)

```sql

SELECT * FROM Produit

WHERE numproduit NOT IN (SELECT numproduit FROM Commander);

```
#### 4. Liste des clients et produits ayant fait l'objet d'une commande (2
points)

```sql

SELECT DISTINCT [Link], [Link], [Link], [Link],


[Link]

FROM Client c

JOIN Commander co ON [Link] = [Link]

JOIN Produit p ON [Link] = [Link];

```

---

## **PARTIE 5 : INGENIERIE DU LOGICIEL (20 points)**

### SECTION 1 : INITIATION AU GENIE LOGICIEL (10 points)

#### A. Langage de spécification Z (2.5 points)

1. **Syntaxe de déclaration d'une variable :**

```z

varName : Type

```

2. **Éléments de spécification :**

- Déclarations de variables.

- Préconditions et postconditions.

- Invariants.

- Schémas.

3. **Démarche de spécification :**

- Définir les exigences.

- Modéliser les données et les opérations.

- Vérifier les propriétés avec des preuves formelles.


4. **Traduction de l'entité PATIENT en Z :**

```z

PATIENT

------

Numero : ℕ

Nom : String

Prenom : String

Adresse : String

------

```

#### B. Concepts du génie logiciel (5 points)

1. **Cycle de vie :** Le cycle de vie d'un logiciel décrit les phases de
développement, de maintenance et de mise à jour d'un logiciel.

2. **Exemples de cycles de vie :**

- **Cycle en V :** Phases séquentielles avec validation à chaque étape.

- **Agile :** Développement itératif et incrémental.

3. **Test de logiciel :**

- **Boîte noire :** Test basé sur les spécifications sans connaissance du
code interne.

- **Boîte blanche :** Test basé sur le code interne et la structure du


logiciel.

### SECTION 2 : NEGOCIATION ET GESTION DE PROJETS INFORMATIQUES


(5 points)

#### A. Connaissances de cours (3 points)

1. **Définitions :**

- **Projet :** Ensemble d'activités planifiées pour atteindre un objectif.


- **Négociation informatique :** Processus de discussion pour définir les
termes d'un projet.

- **Appel d'offre :** Demande formelle de propositions pour un projet.

2. **Étapes du développement d'un logiciel :**

- Analyse des besoins.

- Conception.

- Développement.

- Test.

- Déploiement.

- Maintenance.

3. **Acteurs :**

- Chef de projet.

- Développeurs.

- Testeurs.

- Clients.

#### B. Étude de cas (5 points)

Pour évaluer le projet avec la méthode COCOMO 81 (type médian) :

1. **Estimer la taille du projet** (en KLOC).

2. **Appliquer la formule COCOMO :**

```

Effort (personnes-mois) = a * (KLOC)^b

```

- Pour un projet médian : \( a = 3.2 \), \( b = 1.05 \).

3. **Calculer le coût et la durée** en fonction de l'effort estimé.

Vous aimerez peut-être aussi