Vous êtes sur la page 1sur 42

Examen : Langage de programmation Java

Durée : 2 H
En cas d'ambiguïté dans le texte, levez cette ambiguïté en présentant votre
interprétation personnelle.

Traitez les questions dans l'ordre de votre choix. N'oubliez pas de commenter vos
programmes.

Exercice 1 : Questions de cours (5 pts)


Donner la définition d'une Classe. (1 pt)
Quelle est la différence entre une méthode en Java et une fonction en C ? (1 pt)
Quelle est la différence entre une classe abstraite et une interface ? Quelle est
la syntaxe Java pour définir une interface ? (1 pt)
Quelle est la différence entre une collection de type ArrayList et une collection
de type LinkedList? (1 pt)
Pourquoi la machine virtuelle joue-t-elle un rôle important dans la plateforme Java
? (1pt)
Exercice 2 : QCM (5 pts)
Répondre par exemple par : "Q12 : Réponse 1 et 3"

Que signifie le mot clef "static" associé à un attribut ?


Que la valeur de cet attribut est constante
Que cet attribut n'est visible que dans la classe où il est défini
Que cet attribut sera toujours passé par valeur
Que cet attribut a une valeur unique pour toutes les instances de la classe
Au sujet du mot clef "abstract", quelle assertion est fausse ?
Une classe abstraite ne peut être instanciée
Une méthode abstraite n'a pas d'implémentation
Une classe abstraite n'a pas forcément de classe fille
Une classe abstraite doit contenir au moins une méthode abstraite
Une interface en Java peut contenir :
Des déclarations de méthodes et de constantes
Des déclarations de méthodes
Des déclarations de méthodes et de méthodes statiques
Des déclarations de méthodes et de constructeurs
Quelle différence existe t-il entre les interfaces List et Set ?
Une List peut contenir une référence null, pas un Set
Un Set peut contenir deux fois le même élément, pas une List
Une List peut contenir deux fois le même élément, pas un Set
Un Set peut contenir une référence null, pas une List
Quel est le droit d'accès le plus restrictif pour donner l'accès aux membres d'une
autre classe de même package ?
public
default access
abstract
protected
La déclaration suivante : public class MaClass<T> {… } permet de définir...
Rien du tout en java
Un type générique
Une classe abstraite dont la classe T hérite forcément
Un type comparable avec le type T
Dans quelle situation utilise t-on la séquence : try-catch-finally ?
Pour traiter les exceptions
Pour sortir du programme
Pour déboguer le code
Peut-on utiliser plusieurs blocs catch après un bloc try ?
Vrai
Faux
Quelle instruction faut-il utiliser pour créer un nouveau tableau d'entiers de type
int de 5 cases ?
Array t = new Array ("int", 5);
int t = new int[5];
int[] t = new int[5];
int[] t = new int[4];
Array t = new int[5];
Le code suivant...
import java.util.*;
public class Test
{
public static void main(String args[])
{
Set<Integer> s = new TreeSet<Integer>();
s.add(3);
s.add(1);
s.add('2');
System.out.println(s);
}
}
ne compile pas.
compile, mais lève une exception.
compile, s'exécute et affiche "1".
compile, s'exécute et affiche "[3,1,2]".
compile, s'exécute et affiche "[1,2,3]".
Exercice 3 : (10 pts)
Les questions sont suffisamment expliquées. Si vous avez une remarque reportez-la
sur votre copie, il en sera tenu compte.

On souhaite mettre en place la gestion des ventes d'articles électroménagers dans


un magasin. La phase d'analyse/conception du problème a conduit au diagramme de
classes suivant :

examenEMsi
Diagramme de classe
Classe Article :
public class Article {
protected int code;
protected String nom;
protected double prixHT;

public Article(String nom, double prixHT) {


// (1) A compléter
}

public double prixTransport() {


return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article
}

public String toString() {


return this.code + " " + this.nom;
}
}
Ecrire le constructeur de la classe article. Le code doit être unique pour chaque
article. (1pt)
Comment créer une instance de la classe Article ? (0,5pt)
Quel est l'intérêt de redéfinir la méthode toString() dans toutes vos classes ?
(1pt)
Classe des articles Fragiles :
Donner deux constructeurs de la classe Fragile à partir du constructeur de sa
classe de base. l'un en précisant l'emballage l'autre non. (1pt)
Le prix de transport d'un article fragile est deux fois le prix de transport normal
d'un Article.
Redéfinir la méthode prixTransport() de la classe Fragile. (1pt)

Peut-on écrire : Article tv = new Fragile ("LG", 7000.00);


Si oui, quel est le prix de transport de l'article tv ? (1pt)

Classe Magasin (un ensemble d'articles électroménagers) :


Quelle relation existe-t-il entre Magasin et Article ? (0,5pt)
Ajouter les attributs nécessaires pour implémenter cette relation (vous choisirez
de quel côté de la relation ajouter ces attributs). (1pt)
La méthode add() permet d'ajouter un article et la méthode contains() vérifie si un
article est disponible au magasin. Donner le plus simplement possible le code de
ces deux méthodes. (2pt)
Interface Exportable :
Expliquer en quelques mots comment rendre nos articles exportables à l'étranger?
(1pt)
//Source : www.exelib.net

reponse
Exercice 1 : Questions de cours
Une classe est un modèle permettant de construire des objets qui ont le même
comportement. On peut dire également une classe est moule permettent de construire
des objets qui ont le même comportement.
Une méthode en Java est utilisée pour modifier l’état d’un Objet et de renvoyer
l’état d’un Objet. Une fonction en C est utilisée pour effectuer des calculs….. Une
méthode est une fonction associée à un objet.
Une classe abstraite est une classe qui contient au moins une seule méthode
abstraite, par contre toutes les méthodes d’une interface sont abstraites.
La différence entre ArrayList et LinkedList :
ArrayList: est un tableau dynamique.
LinkedList : est une liste chainée.
La machine virtuelle permet :
l'interprétation du bytecode.
l'interaction avec le système d'exploitation.
la gestion de sa mémoire grâce au ramasse miettes.
Exercice 2 : QCM
Q1 : Réponse 4
Q2 : Réponse 1, 2 et 3
Q3 : Réponse 1
Q4 : Réponse 1, 3
Q5 : Réponse 2
Q6 : Réponse 2
Q7 : Réponse 1
Q8 : Réponse 1
Q9 : Réponse 2
Q10 : Réponse 1

Exercice 3 :
1. La classe Article :

public class Article {

protected int code;


protected String nom;
protected double prixHT;

private static int comp;


public Article(String nom, double prixHT) {
this.code = ++comp;
this.nom = nom;
this.prixHT = prixHT;
}

public double prixTransport() {


return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article
}

public String toString() {


return this.code + " " + this.nom;
}

}
2. Instance de la classe Article :

Article a = new Article("TV", 9000.00);


3. La méthode toString() permet de donner un aperçut d'un objet instancié.
Par exemple : affichage de la valeur des propriétés.

Article a = new Article("TV", 9000.00);


System.out.println(a); //équivalent à System.out.println(a.toString());
4. Les deux constructeurs de la classe Fragile :

public Fragile(String nom, double prixHT) {


super(nom, prixHT);
}

public Fragile(String emballage, String nom, double prixHT) {


super(nom, prixHT);
this.emballage = emballage;
}

5. La méthode prixTransport de la classe Fragile :

public double prixTransport() {


return 2 * super.prixTransport();
}
6. Oui, c'est le polymorphisme d'héritage.

Le prix sera : 700.00

7. La relation entre Article et Magasin est une relation d'association avec


navigation dans un seul sens.

8. On doit ajouter une liste d'articles dans la classe Magasin :

public class Magasin {


private List<Article> articles;

}
9. Les méthodes add et contains :

public class Magasin {

private List<Article> articles;


public Magasin() {
articles = new ArrayList<>();
}

public void add(Article a) {


articles.add(a);
}

public boolean contains(Article a) {


for (Article art : articles) {
if (art.getCode() == a.getCode()) {
return true;
}
}
return false;
}
}
//Source : www.exelib.net

Exercice I :
On considère le modèle suivant :
ETUDIANT (NEtudiant, Nom, Prénom)
MATIERE (CodeMat, LibelléMat, CoeffMat)
EVALUER (NEtudiant, CodeMat, Date, Note)

Question :
1) Créer la base de données avec les clés primaire et étrangère.
2) Ajouter la colonne date de naissance dans Etudiant : DateN.
3) Ajouter la colonne Groupe : Groupe not null.
4) Ajouter la contrainte unique pour les deux attributs (NEtudiant, CodeMat).
5) Ajouter une colonne Age calculé automatiquement à partir de DateN.
6) Ajouter une contrainte, valeur entre 0 et 20 pour la note.
7) Créer une vue qui affiche la liste des étudiants (Groupe, Nom, Prénom) et leur
moyenne Général

Solution
Code:
USE Master
Go
Drop DataBase S5Ex1
Go
Create DataBase S5Ex1
Go
USE S5Ex1
Go
Create table ETUDIANT (NEtudiant int identity primary key, Nom varchar(30), Prénom
varchar(30))
Create table MATIERE (CodeMat int identity primary key, LibelleMat varchar(30),
CoeffMat int)
Create table EVALUER (NEtudiant int foreign key references ETUDIANT (NEtudiant) on
DELETE CASCADE, CodeMat int foreign key references MATIERE (CodeMat) on DELETE
CASCADE, Date smalldatetime, Note decimal(4,2))
Go
insert into ETUDIANT values('Ali','P-Ali')
insert into ETUDIANT values('Ahmed','P-Ahmed')
insert into ETUDIANT values('Imane','P-Imane')
insert into ETUDIANT values('Amine','P-Amine')
Select * from ETUDIANT
Go

AUTRES

create database STAGIAIRES


go
use STAGIAIRES

create table Stagiaire(Code_Stgr int primary key,Nom_Stgr varchar(30),Prenom_Stgr


varchar(30),Date_Naissance date,Tel_Fixe varchar(30),Tel_Portable
varchar(30),E_Mail varchar(30),Code_Groupe varchar(30) foreign key references
Groupe(Code_Groupe))
create table Groupe(Code_Groupe varchar(30) primary key,Annee int,Code_Filiere int
foreign key references Filiere(Code_Filiere))
create table Filiere(Code_Filiere int primary key identity(1,2),Libelle_Filiere
varchar(30))
create table Module(Code_Module int primary key identity(2,2),Libelle_Module
varchar(30))
create table Note(Code_Stgr int foreign key references
Stagiaire(Code_Stgr),Code_Module int foreign key references
Module(Code_Module),Note_1 float,Note_2 float,Note_3 float,primary
key(Code_Stgr,Code_Module))

//Q1
alter table Groupe add constraint C1 check(Annee in(1,2))

//Q2
alter table Stagiaire add constraint c2_fixe check (Tel_Fixe like '05________')
alter table Stagiaire add constraint c2_por check (Tel_Portable like '06________')

//Q3
alter table Stagiaire add constraint c3 check (E_Mail like '%@%.%')

//Q4
alter table Stagiaire add constraint c4 unique
(Nom_Stgr,Prenom_Stgr,Date_Naissance)

//Q5
alter table Groupe add constraint c5 check((Annee=1 and Code_Groupe like 'G[A-H]')
or (Annee=2 and Code_Groupe like 'G[1-8]'))

//Q6
alter table Note add default 0 for Note_1
alter table Note add default 0 for Note_2
alter table Note add default 0 for Note_3
alter table Note add constraint c6 check(Note_1 between 0 and 20 and Note_2 between
0 and 20 and Note_3 between 0 and 20)

//Q7
alter table Note add Moyenne as (Note_1+Note_2+Note_3)/3
//Source : www.exelib.net

AUTRES

Travail à faire:
Donnez les requêtes SQL permettant de réaliser les opérations suivantes :

Créer les tables en spécifiant les clés primaires et étrangères et en respectant


les règles suivantes :
Le noclient de la table client commence de 1 est s’incrémente automatiquement de 1.
La date d’inscription prend la date d'aujourd’hui par défaut.
le numéro de téléphone contient 10 chiffres et doit être unique et le code postal
contient 5 chiffres.
Introduire quelques données pour tester.
Afficher le nombre d'inscriptions entre le 11/02/2015 et 14/02/2015.
Afficher pour chaque client (nom du client), le numéro de voyage, la date
d’inscription, la date de voyage, le prix du voyage, la destination et la durée du
voyage auquel il participe.
Afficher pour chaque voyage (novoyage) le nombre de places libres restantes.
Afficher pour chaque client (nom du client) le montant total qu’il a payé pour tous
les voyages auxquels il a participé.
Diminuer le prix de 10% et augmenter le nombre maximal de place de 20% pour les
voyages dont le nombre de participants est égal au nombre maximal de places.
Supprimer les clients qui ne sont pas inscrit dans un voyage depuis 3 ans.
//Source : www.exelib.net
Travail à faire:
Créer les tables en précisant les clés primaires et étrangères.
Créer les contraintes qui imposent que l’âge de l’élève soit entre 17 et 23 et que
la note du contrôle soit entre 0 et 20.
Insérer des lignes dans les tables.
Afficher le nombre de contrôles passés par élève en mathématiques.
Créer une vue V_Moyenne_Matière qui permet d’afficher la moyenne de chaque élève
(Id,Nom,Prénom) Par matière (NomMat, Coef).
Créer une vue V_Moyenne_Générale qui permet d’afficher la moyenne générale de
chaque élève (Id,Nom,Prénom).
//Source : www.exelib.net
AUTRES

create database VOYAGES


go
use VOYAGES

//Q1
create table CLIENT (noclient int primary key identity(1,1),nom varchar(30),prenom
varchar(30),tel varchar(10) unique, adresse varchar(50),codepostal
varchar(5),constraint c1 check(tel like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
[0-9][0-9]'),constraint c2 check(codepostal like '[0-9][0-9][0-9][0-9][0-9]'))
create table CIRCUIT(nocircuit int primary key, destination varchar(30),duree
float)
create table VOYAGE(novoyage int primary key,datev date,prix float,nbplacemax
int,nocircuit int foreign key references CIRCUIT(nocircuit))
create table INSCRIPTION (noclient int foreign key references
CLIENT(noclient),novoyage int foreign key references
VOYAGE(novoyage),date_inscription date default GETDATE(),primary key
(noclient,novoyage))
//Q2
insert into CLIENT values('NOM1','PRENOM1','0611111111','ADR1','11111')
insert into CLIENT values('NOM2','PRENOM2','0622222222','ADR2','22222')
insert into CLIENT values('NOM3','PRENOM3','0633333333','ADR3','33333')

insert into CIRCUIT values(1,'DES1',4)


insert into CIRCUIT values(2,'DES2',5)
insert into CIRCUIT values(3,'DES3',4)

insert into VOYAGE values(1,'1/1/2016',1200,50,1)


insert into VOYAGE values(2,'1/6/2016',1200,50,1)
insert into VOYAGE values(3,'1/1/2016',1200,50,2)

insert into INSCRIPTION values(8,2,'1/3/2015')


insert into INSCRIPTION values(9,1,'1/12/2015')
insert into INSCRIPTION values(10,1,'1/12/2015')
insert into INSCRIPTION values(8,3,'10/3/2015')

//Q3
select COUNT(noclient) as "Nombre de clients"
from INSCRIPTION
where date_inscription between '11/02/2015' and '11/03/2015'

//Q4
select
c.nom,c.prenom,v.novoyage,i.date_inscription,v.datev,v.prix,r.destination,r.duree
from CLIENT c inner join INSCRIPTION i on c.noclient=i.noclient inner join VOYAGE v
on i.novoyage=v.novoyage inner join CIRCUIT r on v.nocircuit=r.nocircuit

//Q5
select v.novoyage,v.nbplacemax - COUNT(noclient) as "Nombre de places libres"
from INSCRIPTION i inner join VOYAGE v on i.novoyage=v.novoyage
group by v.novoyage,v.nbplacemax

//Q6
select c.noclient,c.nom,c.prenom, SUM(v.prix) as "montant total"
from CLIENT c inner join INSCRIPTION i on c.noclient=i.noclient inner join VOYAGE v
on i.novoyage=v.novoyage inner join CIRCUIT r on v.nocircuit=r.nocircuit
group by c.noclient,c.nom,c.prenom

//Q7
update VOYAGE
set prix=prix+prix*10/100,nbplacemax=nbplacemax+nbplacemax*20/100
where novoyage in
(
select v.novoyage
from INSCRIPTION i inner join VOYAGE v on i.novoyage=v.novoyage
group by v.novoyage,v.nbplacemax
having COUNT(noclient)=v.nbplacemax
)

//Q8
delete from CLIENT
where noclient in
(
select noclient
from INSCRIPTION
group by noclient
//having MAX(date_inscription)<cast(DATEADD(year,-3,GETDATE()) as DATE)
having DATEDIFF(year,MAX(date_inscription),GETDATE())>3
)
//Source : www.exelib.net
AUTRES
Travail à faire:
Donnez les requêtes SQL permettant de réaliser les opérations suivantes :

Créer les tables en spécifiant les clés primaires et étrangères et en respectant


les règles suivantes :
Le noclient de la table client commence de 1 est s’incrémente automatiquement de 1.
La date d’inscription prend la date d'aujourd’hui par défaut.
le numéro de téléphone contient 10 chiffres et doit être unique et le code postal
contient 5 chiffres.
Introduire quelques données pour tester.
Afficher le nombre d'inscriptions entre le 11/02/2015 et 14/02/2015.
Afficher pour chaque client (nom du client), le numéro de voyage, la date
d’inscription, la date de voyage, le prix du voyage, la destination et la durée du
voyage auquel il participe.
Afficher pour chaque voyage (novoyage) le nombre de places libres restantes.
Afficher pour chaque client (nom du client) le montant total qu’il a payé pour tous
les voyages auxquels il a participé.
Diminuer le prix de 10% et augmenter le nombre maximal de place de 20% pour les
voyages dont le nombre de participants est égal au nombre maximal de places.
Supprimer les clients qui ne sont pas inscrit dans un voyage depuis 3 ans.
//Source : www.exelib.net

AUTRES
Travail à faire:
Créer la base de données EMPLOYES.
Créez une vue V_EMP contenant : le matricule, le nom, le numéro de département, la
somme de la commission et du salaire nommé GAINS, le lieu du département.
Sélectionnez les lignes de V_EMP dont le salaire total est supérieur à 10.000
Essayez de mettre à jour le nom de l'employé de matricule 1 à travers la vue V_EMP.
Créez une vue V_EMP10 qui ne contienne que les employés du département 10 de la
table EMP (n'utilisez pas l'option CHECK pour cette création). Insérez dans cette
vue un employé qui appartient au département 20.
Essayez ensuite de retrouver cet employé au moyen de la vue V_EMP10 puis au moyen
de la table EMP.
Détruisez cette vue VEMP10 et recréez-la avec l'option CHECK.
Essayez d'insérer un employé pour le département 30. Que se passe-t-il ? Essayez de
modifier le département d'un employé visualisé à l'aide de cette vue.
Afficher la liste des matricules, noms et salaires des employés avec le pourcentage
par rapport au total des salaires de leur département (utilisez une vue qui
fournira le total des salaires).
//Source : www.exelib.net

21 Déc
2015
Les Vues SQL - Base de données EMPLOYES
CHAOULID | SQL | Chapitre: Les Vues SQL | 31487 visites | Facile | Corrigé

Enoncé
Solution
//Auteur: CHAOULID
//Copyright: Exelib.net

//Q1
create database EMPLOYES
go
use EMPLOYES

create table EMP(matricule varchar(30) primary key,Nom varchar(30),Prenom


varchar(30),Salaire float,Commission float, Num_Dept int foreign key references
DEPT(Num_Dept))
create table DEPT(Num_Dept int primary key,Nom_Dept varchar(30),Ville_Dept
varchar(30))

//Q2
create view V_EMP
as
select e.matricule,e.Nom,e.Prenom,e.Num_Dept,e.Salaire+ISNULL(e.Commission,0) as
"GAINS",d.Ville_Dept
from EMP e inner join DEPT d on e.Num_Dept=d.Num_Dept

select * from V_EMP

//Q3
select *
from V_EMP
where GAINS>10000

//Q4
update V_EMP
set Nom='NOM11'
where matricule=1

//Q5

create view V_EMP10


as
select *
from EMP
where Num_Dept=10

insert into V_EMP10 values(6,'NOM6','PRENOM6',6000,400,20)

select * from V_EMP10


select * from EMP

//Q6
drop view V_EMP10

create view V_EMP10


as
select *
from EMP
where Num_Dept=1
with check option

//Q7
select * from V_EMP10
insert into V_EMP10 values(7,'NOM7','PRENOM7',7000,400,30)

update V_EMP10
set Num_Dept=20
where matricule=2
// les deux requêtes ci-dessus échouent parce que les modifications apportées ne
satisfont pas la condition spécifiée dans la vue crée avec l'option "with check
option"

//Q8
create view V_SOMME_SALAIRES_DEPT as
select Num_Dept,SUM(Salaire) as "Somme_Salaires"
from EMP
group by Num_Dept

select * from V_SOMME_SALAIRES_DEPT

select e.matricule,e.Nom,e.Prenom,e.Salaire,cast((e.Salaire*100)/s.Somme_Salaires
as varchar) +'%' as "Pourcentage"
from EMP e inner join V_SOMME_SALAIRES_DEPT s on e.Num_Dept=s.Num_Dept

//Source : www.exelib.net

AUTRES
Travail à faire:
Créez toutes les tables avec les contraintes d’intégrité PK et FK, et ajouter un
enregistrement par table.
Ajouter une contraint strictement positif (>) pour Montant.
Modifier la valeur Null des Montants par la valeur 0
Modifier les villes des Clients en minuscule
Augmenter le solde de tous les clients habitant “Rabat” de “0,5%”
Afficher la Liste des clients dont le nom se termine par E et le quatrième
caractère est un A.
Afficher la Liste des agences ayant des emprunts-clients.
Afficher la liste des clients ayant un emprunt à “Casa”
Afficher la liste des clients ayant un compte et un emprunt à “Casa”
Afficher la liste des clients ayant un emprunt à la ville où ils habitent.
Afficher la liste des clients ayant un compte et emprunt dans la même agence
Afficher l'emprunt moyenne des clients dans chaque agence
Afficher le totale emprunté par client
Afficher Le client qui a le moins des totaux emprunts
Afficher les clients ayant un compte dans toutes les agences de “Rabat”
//Source : www.exelib.net

AUTRES

//Q1
create database EMPRUNTS
go
use EMPRUNTS

create table AGENCE(Num_Ag int primary key,Nom_Ag varchar(30),Ville_Ag varchar(30))


create table CLIENT(Num_Cl int primary key,Nom_Cl varchar(30),Prenom_Cl
varchar(30),Ville_Cl varchar(30))
create table COMPTE(Num_Cp int primary key,Num_Cl int foreign key references
CLIENT(Num_Cl),Num_Ag int foreign key references AGENCE(Num_Ag),Solde float)
create table EMPRUNT(Num_Ep int primary key,Num_Cl int foreign key references
CLIENT(Num_Cl),Num_Ag int foreign key references AGENCE(Num_Ag),Montant float)

insert into AGENCE values(1,'AGENCE1','Casa')


insert into CLIENT values(1,'NOM1','PRENOM1','Rabat')
insert into COMPTE values(1,1,1,25000)
insert into EMPRUNT values(1,1,1,600000)

//Q2
alter table EMPRUNT add constraint montant_positif check(Montant>=0)
exec sp_helpconstraint EMPRUNT

//Q3
update EMPRUNT
set Montant=0
where Montant is null

//Q4
update CLIENT
set Ville_Cl=LOWER(Ville_Cl)

//Q5
update COMPTE
set Solde=Solde+Solde*0.5/100
where Num_Cl in
(
select Num_Cl
from CLIENT
where Ville_Cl='rabat'
)

//Q6
select *
from CLIENT
where Nom_Cl like '___A%E'

//Q7
select distinct a.*
from EMPRUNT e inner join AGENCE a on e.Num_Ag=a.Num_Ag

//Q8
select distinct c.*
from EMPRUNT e inner join AGENCE a on e.Num_Ag=a.Num_Ag inner join CLIENT c on
e.Num_Cl=c.Num_Cl
where a.Ville_Ag='casa'

//Q9
select *
from CLIENT
where Num_Cl in
(
select distinct Num_Cl
from EMPRUNT e inner join AGENCE a on e.Num_Ag=a.Num_Ag
where a.Ville_Ag='casa'
)
and Num_Cl in
(
select distinct Num_Cl
from COMPTE c inner join AGENCE a on c.Num_Ag=a.Num_Ag
where a.Ville_Ag='casa'
)

//Q10
select distinct c.*
from EMPRUNT e inner join AGENCE a on e.Num_Ag=a.Num_Ag inner join CLIENT c on
e.Num_Cl=c.Num_Cl
where a.Ville_Ag=c.Ville_Cl

//Q11
select distinct c.*
from CLIENT c inner join EMPRUNT e on c.Num_Cl=e.Num_Cl inner join COMPTE cp on
c.Num_Cl=cp.Num_Cl
where e.Num_Ag=cp.Num_Ag

//Q12
select Num_Ag,AVG(Montant) as "Moyenne des Emprunts"
from EMPRUNT
group by Num_Ag

//Q13
select c.Num_Cl,c.Nom_Cl,c.Prenom_Cl,SUM(e.Montant) as "Total des Emprunts"
from EMPRUNT e inner join CLIENT c on e.Num_Cl=c.Num_Cl
group by c.Num_Cl,c.Nom_Cl,c.Prenom_Cl

//Q14
select top 1 c.Num_Cl,c.Nom_Cl,c.Prenom_Cl,SUM(e.Montant) as "Total des Emprunts"
from EMPRUNT e inner join CLIENT c on e.Num_Cl=c.Num_Cl
group by c.Num_Cl,c.Nom_Cl,c.Prenom_Cl
order by "Total des Emprunts"

//Q14--2
select c.Num_Cl,c.Nom_Cl,c.Prenom_Cl,c.Ville_Cl
from EMPRUNT e inner join CLIENT c on e.Num_Cl=c.Num_Cl
group by c.Num_Cl,c.Nom_Cl,c.Prenom_Cl,c.Ville_Cl
having SUM(e.Montant)=
(
select MIN(m.Total)
from
(
select c.Num_Cl,SUM(e.Montant) as "Total"
from EMPRUNT e inner join CLIENT c on e.Num_Cl=c.Num_Cl
group by c.Num_Cl
)m
)

//Q15
select c.Num_Cl,Nom_Cl,Prenom_Cl,Ville_Cl
from CLIENT c inner join COMPTE cp on c.Num_Cl=cp.Num_Cl inner join AGENCE a on
a.Num_Ag=cp.Num_Ag
where a.Ville_Ag='rabat'
group by c.Num_Cl,Nom_Cl,Prenom_Cl,Ville_Cl
having COUNT(distinct a.Num_Ag)=(select COUNT(*) from AGENCE where
Ville_Ag='Rabat')
//Source : www.exelib.net

Créer les tables en précisant les clés primaires et étrangères.


Créer les contraintes qui imposent que l’âge de l’élève soit entre 17 et 23 et que
la note du contrôle soit entre 0 et 20.
Insérer des lignes dans les tables.
Afficher le nombre de contrôles passés par élève en mathématiques.
Créer une vue V_Moyenne_Matière qui permet d’afficher la moyenne de chaque élève
(Id,Nom,Prénom) Par matière (NomMat, Coef).
Créer une vue V_Moyenne_Générale qui permet d’afficher la moyenne générale de
chaque élève (Id,Nom,Prénom).
//Source : www.exelib.net

CORRECTION;

//Q1
create database ELEVES
go
use ELEVES

create table Eleve(Id_Eleve int primary key,Nom varchar(30),Prenom varchar(30),Age


int)
create table Matiere(Code_Matiere varchar(30) primary key,Nom_Matiere
varchar(30),Coef_Matiere int)
create table Controle(Id_Eleve int foreign key references
Eleve(Id_Eleve),Code_Matiere varchar(30) foreign key references
Matiere(Code_Matiere),Date_Controle Date,Note float,primary key
(Id_Eleve,Code_Matiere,Date_Controle))
drop table Controle
//Q2
alter table Eleve add constraint age_eleve check(Age between 17 and 23)
alter table Controle add constraint note_eleve check(Note between 0 and 20)

//Q3
insert into Eleve values(1,'NOM1','PRENOM1',18)
insert into Eleve values(2,'NOM2','PRENOM2',18)
insert into Eleve values(3,'NOM3','PRENOM3',20)

insert into Matiere values('M1','MATIERE1',2)


insert into Matiere values('M2','MATIERE2',3)
insert into Matiere values('M3','MATIERE3',4)

insert into Controle values(1,'M1','1/2/2016',15)


insert into Controle values(1,'M2','1/2/2016',14)
insert into Controle values(1,'M3','1/2/2016',9)
insert into Controle values(1,'M1','1/5/2016',13)
insert into Controle values(2,'M1','1/5/2016',13)

//Q4
select c.Id_Eleve,COUNT(m.Code_Matiere) as "Nombre de controles"
from Controle c inner join Matiere m on c.Code_Matiere=m.Code_Matiere
where m.Nom_Matiere='MATH'
group by Id_Eleve

//Q5
create view V_Moyenne_Matiere as
select
e.Id_Eleve,e.Nom,e.Prenom,m.Nom_Matiere,m.Coef_Matiere,SUM(c.Note)/COUNT(c.Note)
as "Moyenne_Matiere"
from Controle c inner join Eleve e on c.Id_Eleve=e.Id_Eleve inner join Matiere m on
c.Code_Matiere=m.Code_Matiere
group by e.Id_Eleve,e.Nom,e.Prenom,m.Nom_Matiere,m.Coef_Matiere

select * from V_Moyenne_Matiere

//Q6
create view V_Moyenne_Genrale as
select Id_Eleve,Nom,Prenom,SUM(Coef_Matiere*Moyenne_Matiere)/(select
SUM(Coef_Matiere) from Matiere) as "Moyenne Générale"
from V_Moyenne_Matiere
group by Id_Eleve,Nom,Prenom

//Source : www.exelib.net

autre
Exercice SQL SQL SERVER ORACLE

Soit la base de donnée SPDB, contenant les relations Fournisseurs (S), Produits (P)
et Fournit (SP).

S
+------+-------+--------+--------+
| snum | sname | status | city |
+------+-------+--------+--------+
| S1 | Smith | 20 | London |
| S2 | Jones | 10 | Paris |
| S3 | Blake | 30 | Paris |
| S4 | Clark | 20 | London |
| S5 | Adams | 30 | Athens |
+------+-------+--------+--------+
5 rows in set (0.00 sec)

+------+-------+-------+--------+--------+
| pnum | pname | color | weigth | city |
+------+-------+-------+--------+--------+
| P1 | Nut | Red | 12.00 | London |
| P2 | Bolt | Green | 17.00 | Paris |
| P3 | Screw | Blue | 17.00 | Rome |
| P4 | Screw | Red | 14.00 | London |
| P5 | Cam | Blue | 12.00 | Paris |
| P6 | Cog | Red | 19.00 | London |
+------+-------+-------+--------+--------+
6 rows in set (0.00 sec)
SP
+------+------+------+
| snum | pnum | qty |
+------+------+------+
| S1 | P1 | 300 |
| S1 | P2 | 200 |
| S1 | P3 | 400 |
| S1 | P4 | 200 |
| S1 | P5 | 100 |
| S1 | P6 | 100 |
| S2 | P1 | 300 |
| S2 | P2 | 400 |
| S3 | P2 | 200 |

| S4 | P2 | 200 |
| S4 | P4 | 300 |
| S4 | P5 | 400 |
+------+------+------+
12 rows in set (0.00 sec)

I) Créer cette base de données et choisir les types de données appropriés.

II) Ecrire en SQL les requêtes suivantes:

1. Tous les détails sur tous les fournisseurs


2. Le nom et le status des fournisseurs de 'Paris'
3. Idem par ordre decroissant de status
4. les paires numéro de fournisseur et de produit situés dans la même ville
5. le numéro des fournisseurs et le nom des produits qu'ils fournissent
6. le nom des fournisseurs et le nom des produits qu'ils fournissent
7. les numéros de fournisseurs et numéros de produits fournis et situé dans la même
ville.
8. Les paires numéros de fournisseurs ayant même status
9. Il y a combiens d'expéditions du produit de numéro 'P2'?
10. Ecrire de deux façon différentes la requête: "Nom des fournisseurs du produit
de numéro 'P2'
11."Nom des fournisseurs qui fournissent au moins un produit de couleur rouge
('Red')
12. Nom des fournisseurs qui ne fournissent pas le produit 'P2'.

Envoyer par e-mail


BlogThis!
Partager sur Twitter
Partager sur Facebook
AUTRES

Devoir SGBD SQL

Soit la base de donnée contenant la relation parent (parent, enfant) suivante:

parent
+--------+--------+
| parent | enfant |
+--------+--------+
| Ali | Fatima |
| Ali | Kacem |
| Fatima | Amina |
| Fatima | Aziz |
| Kacem | Aziza |
| Aziz | Saida |
| Saida | Farid |
+--------+--------+

et qui signifie que "Ali" est père de "Farima" et que celle-ci est mère de "Amina"
etc.

Définir les vues suivantes (ou la requête SQL pour créer la relation
correspondante):

grand-pere (gp, pf)


frere (f1, f2)
cousin (c1, c2)
oncle (o, n)

Peut-on de la même façon définir une relation ancetre (x, y), sachant que :

ancetre (x, y) = parent (x, y) ou ancetre (x, y) et parent (x, y),

i.e. l'ancêtre est le père ou un ancêtre du père.

AUTRES

Exercices corrigés MCD-MLD-SGBDR - TP et solutions


Exercice 1:
Créez le MCD d’une base de données voiture qui enregistre les certificats
d’immatriculation des véhicules en circulation (carte grise).
Elle doit répondre aux contraintes suivantes :
• Un véhicule est d’un modèle donné identifié par un numéro de type.
• Un véhicule peut avoir un ou plusieurs propriétaires simultanément (copropriété).
• Les recherches effectuées sur la base doivent permettre de retrouver, par
exemple, tous les véhicules d’une personne, la ou les personnes propriétaires d’un
véhicule dont on connaît l’immatriculation et tous les propriétaires d’un modèle de
voiture donné.

Cardinalités :

• Un propriétaire peut avoir une ou plusieurs voitures : pour l’association possède


la cardinalité du côté de l’entité propriétaire est donc 1.N.
• Une voiture peut être la propriété d’une ou plusieurs personnes : pour
l’association possède la cardinalité du côté de l’entité voiture est donc 1.N.
• Une voiture est d’un seul modèle : pour l’association est du modèle la
cardinalité du coté de l’entité voiture est donc
1.1.
• A un modèle peuvent correspondent une ou plusieurs voitures : pour l’association
est du modèle la cardinalité du côté de l’entité modèle est donc 1.N.

Solution

Exercice 2:
Créez le MLD de la base voiture à partir du MCD de l’exercice 1. Vérifiez la
conformité du modèle par rapport aux formes normales.
En application des règles nous obtenons le MLD suivant :
Solution

Exercice 3:

Créez le MCD d’une base de données tournoi permettant d’enregistrer les


participants à un tournoi de tennis et l’ensemble des matches joués en trois sets
au maximum. La base doit enregistrer les participants d’un match donné, ainsi que
le gagnant et le score de chaque set.
La relation rencontre est réflexive.

Solution

Il existerait également une autre solution en créant une entité joueurs et une
entité match reliées par l’association jouer.

Exercice 4:

Créez le MLD de la base tournoi, et vérifiez sa conformité.


Solution

Le MLD correspondant est :

Exercice 5:

Créez le MCD d’une base permettant à un groupe de gérer les droits d’auteur des
livres publiés par ses différentes maisons d’édition. Elle doit répondre aux
contraintes suivantes :
• Un livre peut être écrit par un ou plusieurs auteurs. Un auteur peut écrire un ou
plusieurs livres. Chaque auteur touche un pourcentage des droits totaux d’un livre
en fonction de sa participation.
• Un livre est publié par un seul éditeur.
Solution

Exercice 6:

Créez le MLD correspondant à la base de l’exercice 5, et vérifiez sa conformité.

Solution
Sep 16, 2016
#1
Remarque: Cliquez sur l'image pour la visualiser
Etude de cas: UML

Module: analyse et conception orientée objet.


Niveau: Bac+2, bac+3 ou master.
Durée: 01h
Vous pouvez voir la correction de ce contrôle en cliquant sur l'onglet "SOLUTION"
juste en haut de la page.

Voir aussi:
Liste de 50 exercices avec correction UML

Analyse des besoins d'une entreprise

Soit une entreprise qui possède six usines qui construit des composants de moteurs.
Un seul usine s'occupe du montage,

Les clients passent des commandes, le client prioritaire passe en premier ses
commandes avec 20% de plus de la commande. Les commandes sont reçu par la direction
commerciale. Si le client passe plus de dix commande alors il est prioritaire.
Après traitement des commandes reçu, la direction commerciale obtient un éclatement
des pièces: pièces fabriquées et pièces sous-traitées.

La direction commerciale peut imprimer deux types de listings: listing maison


envoyés aux usine, et un listing des composants soustraites envoyé au service de
gestion du stock qui s'occupe de l'approvisionnement en matières premières.L'usine
de montage finalise alors la commande à l'étape finale. Parmi les tâches aussi de
la direction commerciale on trouve le suivi de la facturation.

Travail demandé

1. Donner le diagramme des cas d'utilisation de ce système


2. Donner diagramme de classes de ce système
3. Décrire le scénario « Traitement d’une commande » par un diagramme de séquence

Cliquez sur "SOLUTION" en haut de la page pour voir la correction

D'autres exercices corrigés en UML:

AUTRES
Etude de cas I:

On souhaite développer une application informatique qui permet la gestion des


emprunts des Cd-rom contenant des jeux vidéo pour les enfants.

Un employé s’occupe d’enregistrer les emprunts des adhérents qui veulent emprunter
les cd-rom. L’employé doit d’abord s’authentifier pour effectuer cette opération.
Chaque cd emprunté doit être rendu à l’employé de la biblio après une durée de 3
jours. L’adhérent donc peut réserver des cd-rom contenant des jeux, chaque
réservation doit mentionner l’emprunteur, le jeu et la date de réservation.
L’adhérent est averti quand le jeu (cd) revient en rayon.

L’employé peut aussi organiser des événements, pour se faire il doit donner les
informations suivantes : le nombre minimal et maximal des participants, les jeux à
tester, la date de l’événement et l’heure de début de l’événement.

L’adhérent qui souhaite participer à un événement peut s’inscrire à condition qu’il


y ait encore de la place disponible. Pour se faire il doit saisir un mot de passe
et login.

Si l’adhérent trouve une place disponible alors il peut payer sa cotisation en


ligne par un système de paiement externe.

Question :

1. Décrire les exigences fonctionnelles du système ?

2. Développez le diagramme de cas d’utilisation ?

3. Développez le diagramme de séquence pour le cas d’utilisation « enregistrer


emprunt » ?

4. Déduire le diagramme de classe ?

Etude de cas II:

On souhaite gérer les réservations de vols effectués dans une agence. D’après les
interviews réalisées avec les membres de l’agence, on sait que :
• Les compagnies aériennes proposent différents vols
• Un vol est ouvert à la réservation et refermé sur ordre de la compagnie
• Un client peut réserver un ou plusieurs vols, pour des passagers différents
• Une réservation concerne un seul vol et un seul passager
• Une réservation peut être confirmée ou annulée
• Un vol a un aéroport de départ et un aéroport d’arrivée
• Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée
• Un vol peut comporter des escales dans un ou plusieurs aéroport(s)
• Une escale a une heure de départ et une heure d’arrivée
• Chaque aéroport dessert une ou plusieurs villes

Travail à faire:

A partir des éléments qui vous sont fournis ci-dessus, élaborez le diagramme de
classes (en y ajoutant tout attribut que vous jugez pertinent et qui n’a pas été
décrit ci-dessus).

Etude de cas III:

Une académie souhaite gérer les cours dispensés dans plusieurs collèges. Pour cela,
on dispose des renseignements suivants :
• Chaque collège possède d’un site Internet
• Chaque collège est structuré en départements, qui regroupent chacun des
enseignants spécifiques. Parmi ces enseignants, l’un d’eux est responsable du
département.
• Un enseignant se définit par son nom, prénom, tél, mail, date de prise de
fonction et son indice.
• Chaque enseignant ne dispense qu’une seule matière.
• Les étudiants suivent quant à eux plusieurs matières et reçoivent une note pour
chacune d’elle.
• Pour chaque étudiant, on veut gérer son nom, prénom, tél, mail, ainsi que son
année d’entrée au collège.
• Une matière peut être enseignée par plusieurs enseignants mais a toujours lieu
dans la même salle de cours (chacune ayant un nombre de places déterminé).
• On désire pouvoir calculer la moyenne par matière ainsi que par département
• On veut également calculer la moyenne générale d’un élève et pouvoir afficher les
matières dans lesquelles il n’a pas été noté
• Enfin, on doit pouvoir imprimer la fiche signalétique (, prénom, tél, mail) d’un
enseignant ou d’un élève.

Travail à faire:

Elaborez le diagramme de classes correspondant. Pour simplifier l’exercice, on


limitera le diagramme à une seule année d’étude

D'autres exercices corrigés en UML:

AUTRES AUTRES
es inscriptions dans une école fonctionnent de la façon suivante. Au début de
chaque semestre, un catalogue des cours proposés est fourni par la scolarité aux
étudiants. Chaque cours est décrit par un certain nombre d'informations, en
particulier : l'enseignant, le cursus et les pré-requis.

(
Voir aussi:
Liste de 50 exercices avec correction UML
)

Ce catalogue ne peut être créé avant que tous les cours ne soient affectés à des
enseignants. Pour cela, chaque enseignant accède au système d'inscription pour
indiquer les cours qu'il prévoit d'enseigner.

Les étudiants doivent remplir des fiches d'enregistrement qui indiquent leurs choix
de cours. L'étudiant standard doit suivre 4 enseignements choisis dans le
catalogue. Il devra indiquer aussi deux cours supplémentaires. En effet, il se peut
que, parmi les 4 cours choisis, l'un des cours soit trop plein ou abandonné par
manque d'étudiants.

Chaque cours doit en effet être dispensé à au moins 5 étudiants et au plus 30


étudiants.

Si un cours est choisi par moins de 5 étudiants, il est supprimé.


Ces fiches sont gérées par la scolarité. Une fois la période d’inscription
terminée, un programme est exécuté pour affecter les étudiants aux cours. Dans la
plupart des cas, les étudiants obtiennent ce qu'il ont choisi. Après que tous les
étudiants aient été correctement affectés aux différents cours, un listing est
imprimé pour chaque étudiant pour vérification.

Une fois la sélection de cours d'un étudiant validée, l'information est transmise
au système de facturation qui facturera l'étudiant pour son semestre.

On souhaite analyser les besoins de ce système d'inscription.

Travail à faire:

1. Donner le diagramme des cas d'utilisation du système.


2. Décrire le scénario principal de chaque cas d’utilisation par un diagramme de
séquence.

AUTRES
Gestion d'une médiathèque (diagramme de contexte, diagramme de séquence)
L'objectif du programme est la gestion des achats et des prêts de documents
(papier, vidéo, son, …) aux usagers d'une bibliothèque municipale.
Il existe plusieurs types de documents :
les livres, et parmi eux des livres spéciaux qui seront consultables uniquement sur
place
les journaux qui seront consultables uniquement sur place
les microfilms, qui portent sur des livres ou des journaux déjà référencés dans la
bibliothèque et qui ne pourront être visualisés que sur les écrans de la
bibliothèque
les CD-ROM documentaires (encyclopédies, visites de musées …) qui pourront être
prêtés avec une caution
Chaque document est repéré par sa côte ; Un livre ou un CD-ROM pourra être trouvé
également par son titre et son (ses) auteur(s), un journal par son titre et sa
date; De même pour un microfilm.
Concrètement l'usager peut consulter sur poste informatique la liste des documents,
une consultation séquentielle par ordre alphabétique selon le type de document,
séquentielle par auteur (tous types de documents confondus), par la côte du
document ou par sa référence (titre, …).
Ensuite, l'usager doit aller chercher le document, soit directement dans le
rayonnage où il est rangé pour les livres et les journaux, soit à un guichet pour
les CD-ROM et les microfilms.
Le CD-ROM ne lui sera remis qu'en échange d'une caution, après qu'il ait présenté
sa carte de lecteur. Cette caution lui sera rendue au retour du CD-ROM. La
bibliothèque dispose de postes informatiques permettant une consultation sur place
des CD-ROM.
Le microfilm lui sera remis sous condition qu'un écran de lecture soit libre ; en
effet un microfilm ne pourra jamais être prêté à domicile.
S'il désire emprunter chez lui un CD-Rom ou un livre, il doit en sortant se
présenter à un employé de la bibliothèque et lui fournir sa carte de lecteur et le
document; l'employé référence alors l'emprunt par le numéro du lecteur et par la
côte du document.
Toute mise en circulation de CD-ROM ou de microfilm génère une fiche de prêt dans
le système informatique. De même lors d'emprunts à domicile d'un livre ou d'un CD-
ROM
Les achats des documents, ainsi que les inscriptions de nouveaux usagers seront
réalisés uniquement par le personnel de la bibliothèque. Les prêts de documents aux
usagers pourront être effectués par le personnel bien sûr, mais également par une
équipe de bénévoles qui n'auront ce droit accordé que pour une période limitée. Les
usagers quant à eux auront possibilité de consulter la liste des documents et de
savoir si ceux ci sont disponibles (ni prêtés, ni perdus).
L'enregistrement d'un nouveau document génère un numéro (sa côte) unique et non
récupérable ; ce numéro est incrémenté automatiquement.
De même pour l'enregistrement de nouveaux lecteurs.
Il est cependant possible de modifier les caractéristiques des fiches lecteurs
(adresse…) et de mettre hors service un document qui a été perdu ou volé.
On ne pourra jamais retirer une fiche document ni une fiche lecteur ; une deuxième
approche du problème permettra de gérer le surcroît de fiches lecteurs inutilisées
(déménagement du lecteur, …).
Un prêt ne sera accordé qu'à la condition que le lecteur ait réglé sa cotisation et
n'ait pas plus de 5 emprunts simultanés.
Le prêt est daté et après 4 semaines, une lettre de relance sera envoyée au
lecteur.
Ces relances seront effectuées à la demande du bibliothécaire.
Les employés de la bibliothèque peuvent consulter les états des lecteurs (nombre
d'emprunts, lesquels …)
Travail à Faire :
Donner la Liste des acteurs
Etablir le Diagramme de Contexte
Etablir le Diagramme de Cas d’Utilisation (Gestion Emprunt/Restitution)
Solution:
1- Liste des acteurs
Bibliothécaire : Responsable de la médiathèque, il fait parti du personnel
Bénévole : Aide au fonctionnement de la médiathèque, il ne gère que les emprunts
restitutions. Il a un contrat temporaire.
Personnel : Employé(s) de la médiathèque, il(s) gère(nt) l’ensemble des tâches sauf
les relances.
Usager : personne qui utilise la médiathèque, il est abonné.

abdelouafi
Administrator
Sep 16, 2016
#1
Remarque: Cliquez sur l'image pour la visualiser
TD : Diagramme de classe

Exercice 1:

Chaque personne possède un nom, un prénom, le sexe et l'âge. On peut calculer les
revenus et les charges de chaque personne. Les attributs de la classe sont privés ;
Les opérations de la classe personne sont publiques.

Voir aussi:
Liste de 50 exercices avec correction UML
Question1 :Modélisez la classe Personne?

On peut calculer le salaire d'une personne, puis de calculer les autres sources de
revenus. Les deux revenus sont de type réels. Lees charges globales sont calculées
en appliquant un coefficient fixe de 20% sur les salaires et un coefficient de 15%
sur les autres revenus.

Question2 :Enrichissez la représentation précédente ?.

En utilisant le nom et de la date de naissance on peut créer un objet de la classe


Personne. Il est possible de changer le prénom d'une personne.

Question3 :Modifier encore la représentation précédente ?

Exercice 2: Relations entre classes

Pour chacun des énoncés suivants, donnez un diagramme des classes :

2.1 - Un auteur (écrivain) écrit au minimum une œuvre

2.2 - Les personnes dans une universités peuvent être soit des étudiants ou des
professeurs.

2.3- Chaque rectangle possède 2 sommets; les sommets sont des points. En utilisant
les coordonnées de ces 2 points, on peut construit un rectangle. On peut calculer
la surface ou bien le périmètre d'un rectangle. On peut aussi translater le
rectangle.

2.4- Une cinéma est constituée de plusieurs salles. Les films sont projetés dans
des salles à une heure déterminée.

2.5- Le facteur distribue des lettres recommandées, lettres ou colis, dans une zone
géographique bien précis. Les habitants sont aussi associés à une zone
géographique.

Exercice 3: Elaboration d'un diagramme de classes complet

Chaque hôtel contient minimum 2 chambres qui contiennent chacune une salle d'eau
(douche, baignoire). Un hôtel peut héberger un ou plusieurs personnes puis il peut
employer des personnels. Un hôtel est dirigé par un seul directeur. Chaque employé
est caractérisé par un nom et un prénom. Une personne peut être soit enfant ou
adulte. Chaque hôtel est caractéristique par une adresse, certain un nombre de
chambres puis une catégorie.

Une chambre possède son numéro, un certain nombre de lits et le prix d'hébergement.
On veut savoir la date de réservation d'une chambre par des personnes. Pour chaque
jour de l'année, il faut calculer le prix de location de chaque chambre selon son
prix et sa durée d'occupation. La somme des prix de location nous permet de
calculer le chiffre d'affaires de l'hôtel entre deux dates.

Question :

Donnez une diagramme de classes correspondant.?


Exercice 4:

Transformer le code source suivant en diagramme de classe correspondant :

public interface Dessinable {

public void dessiner ( );

public void effacer ( );

abstract public class Figure implements Dessinable {

protected String couleur;

protected String getCouleur ( ) { return couleur; }

protected void setCouleur ( String c ) { couleur = c; }

public class Point {

private float x;

private float y;

public float getX ( ) { return x; }

public float getY ( ) { return y; }

public void Point ( float x, float y) { ... }

public class Cercle extends Figure {

private float rayon;

private Point centre;

public Cercle ( Point centre, float rayon) { ... }

public void dessiner ( ) { ... }

public void effacer ( ) { ... }

public class Rectangle extends Figure {

protected Point sommets[] = new Point[2];

public Rectangle ( Point p1, Point p2) { ... }

public void dessiner ( ) { ... }


public void effacer ( ) { ... }

public class Losange extends Figure {

protected Point sommets[] = new Point[2];

public Losange ( Point p1, Point p2) { ... }

public void dessiner ( ) { ... }

public void effacer ( ) { ... }

Exercice 5:

1- Une personne est soit un étudiant ou un enseignant. Donnez le diagramme de


classe correspondant?

2- Un doctorant peut est un étudiant qui assure des cours. Modifier le modèle de
précédent?

3- Les doctorants et les étudiants peuvent modifier leur inscription, et


obligatoirement doivent s'inscrire au début de l'année . Une personne est connue
par son nom et son prénom. On peut calculer le salaire des doctorants et
enseignants. Modifier le modèle précédent?

Exercice 6:

La banque populaire au Maroc contient plusieurs agences, elle est caractérisér par
son nom (banque populaire) et dirigée par un directeur, possède un capital et une
adresse. LE directeur de la banque possède un nom, prénom, âge et son salaire( ou
revenue). Chaque agence possède une adresse , des employés et un identifiant.
Chaque employé possède aussi un nom, prénom et date d'embauche. Un emplyé travail
seulement dans une seule agence, mais peut demander une mutation vers une autres
agence. Un employé peut gérer un ou plusieurs clients, ce dernier possède un seul
compte dans une agence donné, un nom, prénom et une adresse. Chaque client inscrit
est attribué à un employé dans l'agence.
Un compte peut soit être un compte rémunérés ou non. Les comptes rémunérés
possèdent un taux d'intérêt versés annuellement

1. Trouvez les classes (attributs et méthodes)?

2. Trouvez les relations entre les classes (généralisation, association)?

3. Il existe un relation qui lie l'agence, le client, l'employé et le compte. De


quelle relation s'agit-il ? Donnez un diagramme de classes correspondant.?

4. Donnez le diagramme de classes amélioré en n'utilisant que le nom des classes?

GGJH
Exercice 1: Etude d'une caisse de supermarché

Le déroulement normal d’utilisation d’une caisse de supermarché est le suivant :


• un client arrive à la caisse avec ses articles à payer
• le caissier enregistre le numéro d’identification de chaque article, ainsi que la
quantité si elle est supérieure à 1
• la caisse affiche le prix de chaque article et son libellé
• lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
• la caisse affiche le total des achats
• le caissier annonce au client le montant total à payer
• le client choisit son mode de paiement: on suppose que le client va payer en
espèce
o liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au
client

• la caisse enregistre la vente et l’imprime


• le caissier donne le ticket de caisse au client

1- Développez le diagramme de séquence correspondant?


2- Donnez le diagramme de classe?

Voir aussi:
Liste de 50 exercices avec correction UML

Exercice 2: étude d'un Guichet automatique bancaire

Le déroulement normal d’utilisation d’un distributeur automatique de billets est le


suivant :

le client introduit sa carte bancaire


la machine vérifie alors la validité de la carte et demande le code au client
si le code est correct, elle envoie une demande d’autorisation de prélèvement au
groupement de banques. Ce dernier renvoie le solde autorisé à prélever.
le distributeur propose alors plusieurs montants à prélever
le client saisit le montant à retirer
après contrôle du montant par rapport au solde autorisé, le distributeur demande au
client s’il désire un ticket
Après la réponse du client, la carte est éjectée et récupérée par le client
les billets sont alors délivrés (ainsi que le ticket)
le client récupère enfin les billets et son ticket

Travail à Faire :

Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en


compte que le cas où tout se passe bien.

NB : on identifiera les scénarios qui peuvent poser problème en incluant des


commentaires dans le diagramme

Exercice 3: étude d’un projet de recherche en viticulture

Dans le cadre d’un projet de recherche en viticulture, on désire collecter les


temps de travaux sur des exploitations agricoles pilotes, pour travailler en
particulier sur les opérations phytosanitaires.
Pour ce faire, un glossaire des opérations culturales types a été mis en place
(afin que tout le monde ait le même cadre analytique).
Des contraintes assez fortes sont apparues sur le projet : les ouvriers agricoles
des exploitations pilotes n’ont pas accès aux outils informatiques et la lourdeur
d’enregistrement des temps de travaux a donc de fait écarté l’utilisation d’un
outil informatique.
La procédure suivante a ainsi été définie : chaque ouvrier agricole saisit ses
temps de travaux sur un cahier au format prédéfini. (dans ce cahier, il peut
consulter en annexes le glossaire afin d’identifier l’opération culturale type).
Nb : pour les opérations de type phytosanitaire, les informations complémentaires
sont demandées : liste des maladies visées, stade phénologique, méthodes de
traitements et observation.
En fin de mois, le chef d’exploitation vérifie la saisie effectuée sur le cahier et
apporte d’éventuelles corrections.
Il saisit ensuite les opérations du mois sur une application internet connectée à
une base de données.
Le chercheur en charge du projet reçoit automatiquement un mail qui lui indique que
la saisie mensuelle a été effectuée.
Après avoir vérifié la pertinence de la saisie, il notifie au chef d’exploitation
que tout s’est bien passé et que les données intégrées dans la base de données sont
valides et prêtes à être exploitées.
Le chef d’exploitation imprime alors 2 documents sur le mois écoulé :
- l’état mensuel des travaux pour chaque salarié (qui est remis à chaque salarié)
- l’état des opérations phytosanitaires (état Terravitis)
En fin d’année, le chercheur analyse toutes les opérations saisies et rédige une
synthèse générale sur les temps de travaux dans les différentes exploitations.
Cette synthèse est alors transmise à tous les chefs d’exploitation.

Travail à faire:

1- Donnez le diagramme de séquence du cas "saisie opération" réalisé par


l'opérateur "Ouvrier agricole"

2- Donnez le diagramme de cas d'utilisation pour ce système?

3- Donnez le diagramme de classe?

hello guys how are you


where are you from????????????,,******************

Date d’envoi de votre message : le 7 juin à 22:34


home
R=400;C=100e-6;L=10;
home
R=400;C=100e-6;L=10;
A=[-R/L -1/L; 1/C 0];
B=[1/L; 0];
C=[0 1];
D=[0]% L'ETAT EST LA SORTIE
u1=1;%numéro entrée
[Num1,Den1] = ss2tf(A,B,C,D,u1); %
disp('Fonctions transfert par rapport à u1')
disp('W1=Y1/U1=')
printsys(Num1(1,:),Den1,'s')

% CALCUL symbolique : détermination sous formesymbolique


% de la fonction de transfert BELKACEM 0ULD BOUAMAMA
syms s % passer en symbolique
%M=C*(inv(sI-A))*B
PI=eye(2) % matrice unitaire diagonale
%former en symbolic sI-A
Z=(PI*s-A)
M=C*inv(Z)*B+D
sys=ss(A,B,C,D);
eig(A)
disp(' Forme companion')
disp('Forme modale')
Sm=canon(sys,'modal')
polycar=poly(A)
disp(' Forme companion')
disp('Forme canonique')
Sc=canon(sys,'companionl')
figure (1)
step(A,B,C,D), grid, title('REPONSE INDICIELLE')
figure (2)
pzmap(sys)
K=dcgain(sys)
Mf=feedback(sys,1)
figure (3)
step(Mf), grid, title('REPONSE INDICIELLE')
You a transféré un message
Date d’envoi de votre message : le 7 juin à 22:34
2/ systéme mécanique
You a transféré un message
Date d’envoi de votre message : le 7 juin à 22:34
home
Kr=3;b=3/2;M=3/8;
A=[0 1; -Kr/M -b/M];
B=[0; 1/M];
C=[0 1]
D=[0]% L'ETAT EST LA SORTIE
u1=1;%numéro entrée
[Num1,Den1] = ss2tf(A,B,C,D,u1); %
disp('Fonctions transfert par rapport à u1')
disp('W1=Y1/U1=')
printsys(Num1(1,:),Den1,'s')

% CALCUL symbolique : détermination sous formesymbolique


% de la fonction de transfert BELKACEM 0ULD BOUAMAMA
syms s % passer en symbolique
%M=C*(inv(sI-A))*B
PI=eye(2) % matrice unitaire diagonale
%former en symbolic sI-A
Z=(PI*s-A)
M=C*inv(Z)*B+D
sys=ss(A,B,C,D);
eig(A)
disp(' Forme companion')
disp('Forme modale')
Sm=canon(sys,'modal')
polycar=poly(A)
disp(' Forme companion')
disp('Forme canonique')
Sc=canon(sys,'companionl')
figure (1)
step(A,B,C,D), grid, title('REPONSE INDICIELLE')
figure (2)
pzmap(sys)
K=dcgain(sys)
Mf=feedback(sys,1)
figure (3)
step(Mf), grid, title('REPONSE INDICIELLE')
Exercice 1

Pour chaque exemple ci-dessous, indiquez si la relation présentée est une


généralisation, une agrégation ou une association :

Un pays a une capitale


Une transaction boursière est un achat ou une vente
Les fichiers contiennent des enregistrements
Une personne utilise un langage de programmation dans un projet
Les modems et les claviers sont des périphériques d’entrées/sorties
Exercice 2

Pour chaque situation ci-dessous, proposez une modélisation de la réalité.

Une librairie vend des livres, caractérisés par leur auteur et leur nombre de pages
; certains livres possèdent également d’autres caractéristiques : une fourchette
des âges pour les livres pour enfants, et la discipline et le niveau pour les
livres scolaires.
On considère une entreprise, et on suppose qu’un chef dirige plusieurs salariés
(les subordonnés) et que le chef est lui-même un salarié.
On considère une université, et les personnes y travaillant qui peuvent être des
étudiants ou des enseignants.
Exercice 3

Une classe Véhicule a été caractérisée par les propriétés suivantes : Numéro du
véhicule, date de fabrication du véhicule, pavillon du bateau, nombre de réacteurs,
superficie des ailes, puissance fiscale, hauteur du mat, nombre de torpilles.

Quel est le défaut de cette classe ? Proposez une autre représentation à l’aide
d’un diagramme de classes.

Exercice 4

Dans une société de transport, on voudrait gérer les bus de ramassage scolaire et
les conducteurs. Un lycéen est un enfant, il est caractérisé par son nom, son âge
et son sexe. Les informations qui caractérisent le conducteur sont les mêmes que
pour le lycéen, avec en plus le numéro de son permis. Quant au bus, on a besoin de
connaître son numéro d’immatriculation, sa date de mise en service, nombre d’années
de service, et le poids total.

Un bus est composé d’une carrosserie (poids, couleur), de 6 roues (pression,


diamètre), de plusieurs sièges (couleur) pour passagers, plusieurs vitres
(épaisseur, poids).

Présentez le diagramme de classes adéquat.

Exercice 5

Une compagnie aérienne propose des places sur différents vols à des passagers. Un
vol est une succession de segments de vol. Un segment de vol a un aéroport de
départ et un aéroport d’arrivée. Les aéroports desservent des villes. Un commandant
de bord, un copilote et un avion sont affectés à chaque segment.

Créez les classes et associations nécessaires à la modélisation de ce problème.

Exercice 6
Un ordinateur est composé d’un ou plusieurs moniteurs, d’un boîtier, d’une souris
optionnelle et d’un clavier. Un boîtier a un châssis métallique, une carte mère,
plusieurs barrettes de mémoire (RAM, ROM et cache), un ventilateur optionnel, des
supports de stockage (disquette, disque dur, CD-ROM, DVD-ROM…) et des cartes
périphériques (son, réseau, graphique). Un ordinateur possède toujours au moins un
lecteur de disquette ou un disque dur.

Proposez un diagramme de classes qui représente l’architecture d’un ordinateur.

La correction exercices diagramme de classe (voir page 2 en bas)

Exercice 1: Etude d'une caisse de supermarché

Le déroulement normal d’utilisation d’une caisse de supermarché est le suivant :


• un client arrive à la caisse avec ses articles à payer
• le caissier enregistre le numéro d’identification de chaque article, ainsi que la
quantité si elle est supérieure à 1
• la caisse affiche le prix de chaque article et son libellé
• lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
• la caisse affiche le total des achats
• le caissier annonce au client le montant total à payer
• le client choisit son mode de paiement: on suppose que le client va payer en
espèce
o liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au
client

• la caisse enregistre la vente et l’imprime


• le caissier donne le ticket de caisse au client

1- Développez le diagramme de séquence correspondant?


2- Donnez le diagramme de classe?

Voir aussi:
Liste de 50 exercices avec correction UML

Exercice 2: étude d'un Guichet automatique bancaire

Le déroulement normal d’utilisation d’un distributeur automatique de billets est le


suivant :

le client introduit sa carte bancaire


la machine vérifie alors la validité de la carte et demande le code au client
si le code est correct, elle envoie une demande d’autorisation de prélèvement au
groupement de banques. Ce dernier renvoie le solde autorisé à prélever.
le distributeur propose alors plusieurs montants à prélever
le client saisit le montant à retirer
après contrôle du montant par rapport au solde autorisé, le distributeur demande au
client s’il désire un ticket
Après la réponse du client, la carte est éjectée et récupérée par le client
les billets sont alors délivrés (ainsi que le ticket)
le client récupère enfin les billets et son ticket
Travail à Faire :

Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en


compte que le cas où tout se passe bien.

NB : on identifiera les scénarios qui peuvent poser problème en incluant des


commentaires dans le diagramme

Exercice 3: étude d’un projet de recherche en viticulture

Dans le cadre d’un projet de recherche en viticulture, on désire collecter les


temps de travaux sur des exploitations agricoles pilotes, pour travailler en
particulier sur les opérations phytosanitaires.
Pour ce faire, un glossaire des opérations culturales types a été mis en place
(afin que tout le monde ait le même cadre analytique).
Des contraintes assez fortes sont apparues sur le projet : les ouvriers agricoles
des exploitations pilotes n’ont pas accès aux outils informatiques et la lourdeur
d’enregistrement des temps de travaux a donc de fait écarté l’utilisation d’un
outil informatique.
La procédure suivante a ainsi été définie : chaque ouvrier agricole saisit ses
temps de travaux sur un cahier au format prédéfini. (dans ce cahier, il peut
consulter en annexes le glossaire afin d’identifier l’opération culturale type).
Nb : pour les opérations de type phytosanitaire, les informations complémentaires
sont demandées : liste des maladies visées, stade phénologique, méthodes de
traitements et observation.
En fin de mois, le chef d’exploitation vérifie la saisie effectuée sur le cahier et
apporte d’éventuelles corrections.
Il saisit ensuite les opérations du mois sur une application internet connectée à
une base de données.
Le chercheur en charge du projet reçoit automatiquement un mail qui lui indique que
la saisie mensuelle a été effectuée.
Après avoir vérifié la pertinence de la saisie, il notifie au chef d’exploitation
que tout s’est bien passé et que les données intégrées dans la base de données sont
valides et prêtes à être exploitées.
Le chef d’exploitation imprime alors 2 documents sur le mois écoulé :
- l’état mensuel des travaux pour chaque salarié (qui est remis à chaque salarié)
- l’état des opérations phytosanitaires (état Terravitis)
En fin d’année, le chercheur analyse toutes les opérations saisies et rédige une
synthèse générale sur les temps de travaux dans les différentes exploitations.
Cette synthèse est alors transmise à tous les chefs d’exploitation.

Travail à faire:

1- Donnez le diagramme de séquence du cas "saisie opération" réalisé par


l'opérateur "Ouvrier agricole"

2- Donnez le diagramme de cas d'utilisation pour ce système?

3- Donnez le diagramme de classe?

AUTRES

Sep 16, 2016


#1
Remarque: Cliquez sur l'image pour la visualiser
Contrôle N°1: Analyse et conception orientée objet
Durée=01h30
Je vous conseil de travailler ce contrôle avant de voir la correction

Voir aussi:
Liste de 50 exercices avec correction UML

Exercice 1 :

On considère un système sous forme d'une lampe, une lampe peut être soit allumée ou
éteinte. Un utilisateur peut allumer ou éteindre la lampe, ces deux opérations
constituent bien les objectifs fonctionnels de cet utilisateur.

1- Modélisez les deux cas d’utilisations ?

2- Le réseau électrique peut être un acteur secondaire dans ce système, comment


l'ajouter dans le cas d’utilisation de l’allumage de la lampe ?

3- Le réseau électrique fait il partie du système ?

Exercice 2 : système d’authentification

L'authentification d'une personne dans un système se fait par un login correct et


un mot de passe correct.

1- Modélisez le cas d’utilisation de « s'Authentifier »?

2- Modifier le modèle précédent pour prendre en compte la saisie du nom et du mot


de passe ainsi que la vérification de ces données ;

3- Après la saisie du mot de passe, on peut saisir un code supplémentaire qui n'est
pas obligatoire. Modifier le modèle précédent?

Exercice 3:

1. Quelle est la différence entre les diagrammes statiques et les diagrammes


dynamiques d'UML?

2. Qu'est ce qu'un diagramme de séquence? Comment le représenter en UML?

AUTRE
:):)Cliquez sur "SOLUTION" en haut pour voir la correction;);)
Exercice 1:

On souhaite gérer la réservation des salles de cours et les matériaux pédagogiques


(ordinateur portable ou/et Vidéo projecteur) dans une école privée. Dans cette
école on peut trouver des enseignant et des étudiants, la réservation peut se faire
uniquement par des enseignants selon la disponibilité des la salle ou du matériel.
L'école affiche un planning des salles qui peut être consulté par les enseignants
et les étudiants. Le récapitulatif horaire par enseignant, édité par un professeur
responsable, n'est consulté que par les professeurs.

Modélisez cette situation par un diagramme de cas d'utilisation?

(
Voir aussi:
Liste de 50 exercices avec correction UML
)

Exercice 2

Soit un guichet automatique bancaire, un client peut retirer de l'argent s'il


possède suffisamment de fond. Il peut aussi consulter son compte ou payer ses
factures. S'il retire de l'argent ou s'il paye ses facture il est possible de
consulter son compte.
Modélisez ce système par diagramme de cas d'utilisation ?

Exercice 3

On souhaite qu'un utilisateur se connecte à un serveur (le système étudié) par des
protocoles comme FTP ou telnet ....
- Le protocole FTP permet le transfert des fichiers, nécessite une identification.
- Le protocole telnet sert pour exécuter les commandes, nécessite une
identification.
- HTTP pour le transfert des données (pages html).
- Mail permet de transférer les fichier, nécessite une identification

Modélisez ce système par un diagramme de cas d'utilisation ?

Exercice 4:

Soit un système de gestion de stock, ses fonctionnalités sont les suivantes :

1. Edition de la fiche d’un fournisseur.

2. Possibilité d’ajouter un nouvel article qui nécessite tout d’abord l’édition de


la fiche fournisseur. Si le fournisseur n'existe pas, on peut alors le créer.

3. Edition de l’inventaire. Depuis cet écran, on a le choix d’imprimer


l’inventaire, d’effacer un article ou d’éditer la fiche d’un article.

Modéliser ce système par un diagramme use case?

Exercice 5:

On souhaite gérer l'inscription des étudiants dans une école, la scolarité propose
un catalogue des cours aux étudiants. Par la suite les étudiants indiquent leurs
choix de cours en remplissant une fiche d'enregistrement, un étudiant peut choisir
jusqu'à quatre cours qui existent dans le catalogue plus deux cours
supplémentaires. Un cours est caractérisé par le nom d'enseignant qui va assurer ce
cours et le cursus. Pour créer un catalogue il faut d'abord affecter les cours aux
enseignants.

chaque enseignant indique les cours à enseigner en se connectant au système


d'inscription.Pour commencer un cours il faut avoir au moins 5 étudiants et au
maximum 30, le cours sera supprimé dans le cas où le nombre d'étudiant est
inférieurs à 5. A la fin des inscription on exécute un programme pour affecter les
étudiants aux cours. On suppose qu'après exécution de ce programme tous les
étudiants obtiendront ce qu'ils ont choisi. A la fin de cette opération on imprime
un listing pour chaque étudiant et l'information est transférer au système de
facturation qui facturera l'étudiant pour son semestre.

Travail demandé
1. Donner les acteurs de ce système

2. Donner le diagramme des cas d'utilisation du système

3. Décrire le scénario principal de chaque cas d’utilisation par un diagramme de


séquence

AUTRE

Sep 16, 2016


#1
Remarque: Cliquez sur l'image pour la visualiser
Filière : TDI2 Niveau : Technicien Spécialisé Durée : 2h

Intitulé du module : UML

I-Partie Théorique: (10 Points)

A- Donnez une définition clair et simple des concepts suivants

A-1- Agrégation ? donnez un exemple ? (2pt)

A-2- Héritage ? avec un exemple ? (2pt)

(
Voir aussi:
Liste de 50 exercices avec correction UML
)

B- Une contrainte limite le nombre d'instance dans un diagramme de classe

B-1- Citez 2 types de contraintes avec des exemples? (2pt)

B-2- Une personne est soit un professeur ou un étudiant dans une école, modélisez
cette phrase par un diagramme de classe? ajoutez la contrainte nécessaire dans ce
cas? (4pt)

II-Partie Pratique : (30 Points)

CTM est une société marocaine de livraison express à domicile. Le service Clientèle
reçoit chaque jour les clients qui désirent une livraison au Maroc ou à l'étranger.
Ce service gère deux catégories de paquets (chaque paquet est caractérisés par son
identificateur et son poids) :

· les paquets légers ou lettres dont le poids est < à 2 kg, chaque lettre est
identifiée par un numéro et son poids.

· les paquets lourds ou colis dont le poids est > à 2 kg.

Le tarif est calculé en fonction du poids du colis et de sa destination avec un


forfait de 10 DH si le client opte pour un envoi avec accusé de réception. Le
service Clientèle enregistre alors les références des paquets client (coordonnées
expéditeur + destinataire, poids, etc.) en ordinateur et impriment un récépissé
pour le client contenant son nom, prénom et son adresse. La facturation des lettres
à destination de Maroc sont gérés aussi par ce service. Si le paiement est
effectué, le service transmet le paquet au service Logistique pour l'acheminement.
Il existe deux types de colis: colis à destination de l'international et colis
national. Les colis internationaux doivent respecter la réglementation douanière et
doivent donc faire l'objet de démarches plus lourdes qui rallongent leur délai
d'acheminement de 48h au moins et sont sur-facturés de 10%. En particulier, le
client doit remplir et signer une liasse de transport qui précise la nature et la
valeur du contenu du (ou des) paquets à acheminer. Le paquet, accompagné de ce
document, est transmis au service Export de l'entreprise.
Les paquets dont le poids dépasse les 20kg ou, dont le contenu est répertorié dans
une liste de marchandises (les marchandises sont caractérisées par une référence et
un poids) bien définie par la réglementation douanière, doivent subir des
formalités avec les douanes marocaine, en liaison avec le service Export. Le paquet
ne peut être acheminé avant accord des douanes qui se matérialise par un bordereau
avec les références du paquet à acheminer et le montant de la taxe à la charge du
client. Le service Export de l'entreprise transmet alors l'information au service
de facturation. Celui-ci émet ensuite la facture finale à destination du client.
Après règlement, le service Export en est informé et transmet le paquet avec le
bordereau des douanes au service Logistique qui se charge de la livraison.

1. Développez le diagramme use case ? justifiez votre choix.? (10pt)

2. Décrire sous forme d'un diagramme de séquence le cas d'utilisation "gestion


paquets"? (10pt)

3. Donnez le diagramme de classe correspondant ? (10pt)

AUTRE

Mar 3, 2017
#1
Remarque: Cliquez sur l'image pour la visualiser
Exercice 1 :

Soit une lampe de chevet (le système est la lampe), les deux interactions liées aux
fonctionnalités du système sont l’allumage de la lampe et son extinction. Un
utilisateur peut allumer ou éteindre la lampe, ces deux opérations constituent bien
les objectifs fonctionnels de cet utilisateur.

(
Voir aussi:
Liste de 50 exercices avec correction UML
)

1- Représentez les deux cas d’utilisations ?

2- Faire intervenir le réseau électrique dans le cas d’utilisation de l’allumage de


la lampe ?

3- Le réseau électrique fait il partie du système ? quel est donc le rôle joué dans
ce système ?

Exercice 2 : système d’authentification

Il s’agit de décrire le cas d’utilisation de l’authentification d’un utilisateur à


un système informatique. Cette authentification s’effectue de façon simple par la
saisie d’un nom et d’un mot de passe.

1- Représentez le cas d’utilsation de « Authentifier » permettent à un utilisateur


de se connecter au système, sans spécifier les détails ;

2- Introsuire, dans le diagramme du cas d’utilisation, la saisie du nom et celle du


mot de passe aisni que la vérification de ces données ;

3- Ajouter la saisie d’un code complémentaire après celle du mot de passe. Ce code
complémentaire est optionnel et n’est destiné qu’aux utilisateurs ayant besoin
d’une sécurité accrue,

AUTRE

May 20, 2017


#1
Remarque: Cliquez sur l'image pour la visualiser
controle uml 2017.png
Enoncé : système location de cassette vidéo

Soit un club qui permet la location des cassettes vidéo. Ce club entretient des
relations avec plusieurs éditeurs de cassettes qui procurent ces cassettes aux
employés du club soit en location soit en vente.

Voir aussi:
Liste de 50 exercices avec correction UML
)
Les éditeurs sont donc les fournisseurs de cassettes pour les employés du club qui
peuvent donc passer avec les éditeurs des contrats de location d’une durée de 6
mois, ou bien passer des commandes à partir de catalogues proposés par les
éditeurs.

Les employés du club peuvent vendre les cassettes qui leur appartiennent aux
grossistes lorsqu’ils constatent une usure sur ces cassettes.

Les clients de ce club vidéo sont les adhérents. Chaque adhérent possède une carte
d’adhérent contenant le code adhérent et son nom. L’adhérent peut choisir entre
plusieurs types d’abonnement.

Les tarifs varient selon le mode d'abonnement choisi, il existe alors 4 tarifs de
location en fonction du type d’abonnement. Toutefois, on peut louer des cassettes
aux clients non abonnés sans leur faire profiter des avantages tarifaires réservés
aux abonnés.

Le client non adhérent qui souhaite louer des cassettes vidéo peut passer une
demande d’adhésion, tandis que l’adhérent non abonné peut aussi passer une demande
d’abonnement.

A la fin de la location, l’adhérent doit retourner la cassette louée. Notez bien


que toutes les opérations nécessitent une authentification.
1. Déterminer les exigences du système ?

controle uml 2017 ista.png

2. Donner le diagramme des cas d'utilisation du système (Penser à utiliser la


généralisation d’acteurs) ?

3. Décrire le scénario « Location Cassettes » par un diagramme de séquence. ?

D'autres exercices corrigés en UML:

AUTRE

r
Sep 16, 2016
#1
Remarque: Cliquez sur l'image pour la visualiser
Exercice 1:

1. Donnez la différence entre Merise et UML?

2. Citer les trois axes de modélisation UML?

Voir aussi:
Liste de 50 exercices avec correction UML

Exercice 2

un commerçant de produit touristique (souvenir , livres régionaux, ...) désire


informatiser sa caisse. chaque type de produit possède un code unique (étiquette à
code barre), et un même prix pour tous les produits de ce type. l'objectif est de
faciliter la maintenance des prix des articles.

chaque type de produit est référencé dans un catalogue, avec son prix associé.
Quand le prix d'in produit doit être modifié, la manager modifie son prix dans le
catalogue, puis sur l'étager où il est rangé.

Le caissier s'identifie pour démarrer la caisse(avec un mot de passe).

la caisse fera les fonctions habituelles d'une caisse: calcul sous total, calcul du
total, possibilité de rentrer plusieurs articles ayant un même code, retour d'une
marchandise avec le ticket de caisse. Le paiement se fera en monnaie seulement.

La caisse permet d'éditer des rapports:

· le reçu qui sera donné uniquement pour une vente effective . il contient le nom
du magasin, un message de bienvenue, la date et l'heure. Puis pour chaque vente il
donne le code du produit, la description du produit, le prix unitaire, la quantité
et le sous total. Enfin nous y trouvons le total TTC

· Le rapport quotidien détaillé: liste de l'ensemble détaillé des ventes de la


journée.
la caisse s'exécute sur un ordinateur. Une douchette permettra de lire les codes à
barres. Les informations peuvent être rentrées au clavier, ou à la souris.

1. déterminer les exigences du système?

2. donnez le diagramme de contexte de ce système?

3. donnez le diagramme des cas d'utilisation?

4. Développez le diagramme de séquence pour le cas d'utilisation "Effectuer un


achat"?

5. Développez le diagramme de séquence pour le cas d'utilisation "s'authentifier"


pour l'acteur salar

AUTRES

Sep 16, 2016


#1
Remarque: Cliquez sur l'image pour la visualiser
upload_2016-9-16_13-3-13.png

I. Partie théorique (4 points):

1. Qu'est ce qu'un diagramme de séquence? Comment le représenter en UML?

3. Expliquez à l'aide d'un exemple le concept d'héritage dans un diagramme de


classe?

4. Peut on exprimer dans un diagramme de cas d'utilisation le fait qu'une


fonctionnalité s'exécute avant une autre? Si oui, comment? Si non, pourquoi?

(
Voir aussi:
Liste de 50 exercices avec correction UML
)

II. Partie pratique: La présentation d'une médiathèque (16 point)

Soit une médiathèque pour l'emprunte des ouvrages par des clients inscris en
utilisant une fiche d'inscription contenant ses informations (nom, adresse,
etc...). On a trois types de clients, soit un client à tarifs réduit, client abonné
pour une année ou un client à tarif normal. Tout emprunte a une durée fixe qui ne
dépasse pas 10 jours.

Un client peut emprunter différents types d'ouvrage: audio, vidéo ou des livres.
Ces ouvrages sont enregistré dans la médiathèque par un code unique. D'autre part,
il existe des document que le client ne peut pas emprunter, mais juste consultable
sur place.

Chaque ouvrage possède un type particulier, par exemple les livres possèdent un
type "roman", ou sont de type "policier" etc.

Après emprunte d'un ouvrage, le bibliothécaire constitue une fiche d'emprunte.


Cette fiche doit contenir le nom du client, la date de prêt et la date retour. Le
bibliothécaire peut ajouter ou supprimer un client ou un ouvrage.

L'emprunt d'un document par un client obéit à certaines règles :

- L nombre maximal de documents à emprunter est 5, s'il dépasse ce nombre alors


toute nouvelle emprunte serai impossible.

- Si le client qui a emprunter un document et qui ne l'a pas restitué sa date


limite de restitution sera bloqué pour ne plus faire de nouvel emprunt tant qu'il
n'a pas restitué l'ouvrage, ceci même si le nombre maximal d'emprunts n'est pas
atteint.

· Le tarif des emprunts dépend du document et du client.

Questions:

1. déterminez les exigences du système (acteurs et leurs actions)? (3 points)

2. Donnez le diagramme de contexte de ce système? (1 point)

3. à partir de ces exigences déterminez le diagramme des cas d'utilisation? (3


points)

4. Donnez le diagramme de séquence pour le cas d'utilisation "Emprunter ouvrage"?


(2 points)

5. A partir du diagramme use case déterminez le diagramme de classe de ce système?


(3 points)

AUTRE

Oct 9, 2018
#1
Remarque: Cliquez sur l'image pour la visualiser
Examen de passage à la 3ème année - Cours du Soir
Session Juillet 2012.
Filière : Techniques de Développement Informatique
Epreuve : Théorique
Niveau : Technicien Spécialisé
Durée : 4 h 00
Barème : 20 Pts

Voir aussi:
Liste de 50 exercices avec correction UML

Dossier 1 (10 pts)

Il s'agit de concevoir une application permettant la gestion et le suivi de


l’avancement des modules dans un établissement de formation.

Une formation possède les informations suivantes : code, intitulé, date de début,
date de fin, état (en cours ou clôturé).
Une formation est décomposée en modules, chaque module se caractérise par : code du
module, objectif, masse horaire, date de début, date de fin, l'état de réalisation
(terminé ou non), nombre d’heures réalisées, un formateur qui enseigne ce module,
EFM (réalisé ou non), date prévue de l’EFM, date de réalisation de l’EFM, PV des
notes (livré ou non).

Le responsables de la formation sont des personnes dont chacune possède : un


matricule, un nom et prénom, une date de naissance, un numéro de téléphone, un
email, un grade (directeur, directeur pédagogique ou formateur).

Le directeur a la responsabilité de Gestion du personnel (recruter (ajouter),


licencier (supprimer) ou redéployer le personnel (modifier)) et consulter l’état
d’avancement des modules de chaque formation.

Le directeur pédagogique possède les droits suivants : ajouter des formations,


ajouter des modules, affecter un module à un formateur, modifier les informations
d’un module, consulter l’état d’avancement des modules.

Le formateur possède le droit de modifier la masse horaire réalisée des modules


qu’il enseigne.

Au démarrage de chaque formation, le directeur pédagogique crée la formation et les


modules et affecte chaque module à un formateur. Au cours de l’exécution de la
formation, le formateur met à jour la masse horaire réalisée après chaque séance de
cours ou de TP. Chaque module est sanctionné par un EFM noté et des contrôles
continus. A la fin de chaque module, le formateur prépare une proposition d’EFM qui
doit être validée par le directeur pédagogique. Après la validation, le directeur
pédagogique fixe une date de réalisation d’EFM et après la réalisation, l’EFM sera
marqué comme réalisé et le module sera terminé. Le formateur doit corriger les
examens et livre le PV des notes finales à la direction pédagogique.

Après la livraison de tous le PV des modules par les formateurs, la formation sera
clôturée.

1 - Etablir le diagramme de cas d’utilisation. (2,5 pts)

2- Etablir Le diagramme de séquence « Consulter l’état d’avancement des modules».


(2,5 pts)

3- Etablir un diagramme des classes. (2,5 pts)

4- Déduire le modèle conceptuel de donnée (MCD) et le modèle logique de données


(MLD). (2,5 pts)

Dossier 2 (10 pts)


Soit le diagramme des classes suivant :

upload_2018-10-9_10-31-13.png
Implémenter, dans un langage de programmation orienté objet, les classes du
diagramme ci-dessus. (1,5pts)
Implémenter les liens de composition sous forme d’une structure de données (table
ou collection). (1pt)
Implémenter la méthode abstraite « getNombreDeFormateur » dans les classes ISTA,
Unité mobile et EFP en prison, sachant que : (1,5 pts)
ISTA et EFP en prison : la méthode « getNombreDeFormateur » retourne la valeur de
l’attribut nombre des formateurs.
Unité mobile : retourne « 1 ».
Ajouter une méthode « getNombreDeFormateur » dans la classe « Complexe de formation
» qui retourne le nombre de formateurs de ce complexe (c’est à dire la somme des
nombres de formateurs dans les EFP de ce complexe). (2 pts)
Ajouter une méthode « getNombreDeFormateur » dans la classe « Direction régionale »
qui retourne le nombre de formateurs de cette direction (c’est à dire la somme des
nombres de formateurs dans les complexes de formation de cette direction). (2 pts)
Ajouter une méthode « getNombreDeFormateur » dans la classe « OFPPT» qui retourne
le nombre de formateurs de toutes les directions régionales (c’est à dire la somme
des nombres de formateurs dans toues des directions régionales). (2 pts)
Attachments

AUTRES

Jan 5, 2018
#1
Remarque: Cliquez sur l'image pour la visualiser
Diagramme d'état transitions exercices corrigés pour bien maîtriser la conception
et l'élaboration des différents états d'un projet informatique.

Voir aussi:
Liste de 50 exercices avec correction UML

Exercice 1:

1- Modélisez dans un premier temps le comportement lié à l'utilisation du bouton


mode de la montre (mode chrono et mode réglage).?

2- Dans le même diagramme, ajoutez le comportement lié à l'utilisation du bouton


"lumière" (lumière éteinte et lumière allumée).?

3- Donnez le diagramme de classes correspondant pour ce système afin de représenter


les objets suivants afficheur, Temps et Montre?

Exercice 2: Diagramme d’états simple

Considérons un réveille-matin simplifié :


• on peut mettre l’alarme « on » ou « off » ;

• quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans
s’arrêter ;
• on peut interrompre la sonnerie.
Travail à faire :
Dessinez le diagramme d’états correspondant.

Vous aimerez peut-être aussi