Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
ENSEIGNANT:
PROF. DR.-ING. HABIL. KOLYANG/M. NOUNAMO D. P.
UNIVERSITÉ DE MAROUA
ECOLE NATIONALE SUPÉRIEURE POLYTECHNIQUE
ANNÉE ACADÉMIQUE 2018-2019
Informations générales
Types de cours
Cours magistral
Travaux dirigés
Travaux pratiques
Travail Personnel de l'Etudiant
Le présent cours n'a pas pour objectif de développer les théories et les
outils pour permettre de construire des logiciels qui répondent à un
standard. Il discute des méthodes de « fabrication et de conception
systématique de logiciels ».
Introduction générale
Au centre des procédés d’étude et de réalisation des SI se trouve la
programmation.
programmation in-the-large :
couler ensemble de larges modules pour résoudre des tâches
probablement mal définies.
C’est l’une des principales tâches du software engineering, le génie
logiciel.
Brève historique
Le terme ‘génie logiciel’ a été introduit pour la première fois en 1968
lors d’une conférence internationale consacrée à des discussions sur
la ‘crise du logiciel’.
Un symptôme de cette crise :
Le coût du logiciel dépassait le coût du matériel.
La non qualité des systèmes produits.
Les risques humains et économiques sont importants
MAIS
Facteurs externes
Correction : La correction est la capacité des produits logiciels de
remplir exactement leurs tâches telles que définies par les besoins et la
spécification.
L’informatique est la
machinisation du travail
intellectuel.
En effet, là où il y a un travail
intellectuel, l’ordinateur peut mieux
faire que l’homme.
Chapitre 1:
Les modèles du
développement des logiciels
Rappels historiques
Les anciens projets de développement de logiciel
obéissaient à une méthodologie de développement
dite CODE-AND–FIX.
Inconvénient
la difficulté de non maîtrise par les non-techniciens.
Thèmes du génie Logiciel
la structuration du processus de développement (modèle
du processus, outils),
la construction des modèles,
la spécification,
le raffinement,
l’implémentation et
la vérification.
Structuration et abstraction
Pour résoudre la complexité des programmes, deux
notions sont essentielles : la structuration et
l’abstraction.
la programmation explorative,
le prototype rapide,
De la solution retenue
Les modèles de développement :
Le modèle en spirale
Le modèle en cascade peut être aussi incorporé dans la
spirale. L’analyse, la définition et la conception
apparaissent comme des couches propres.
L’implantation et le test sont résumés en un seul cycle.
Les modèles de développement :
Les modèles spécifiques
Certains États (gouvernements) imposent pour le
développement des logiciels de qualité des méthodes
ou méthodologies spécifiques. En France, l’on a
MERISE, en Allemagne le modèle V, en Angleterre Z,
etc.
Ce principe de tampon est désigné de gestion révision. Il peut aussi se faire d’une
manière partagée entre différents postes d’un réseau ou via Internet.
5.4. La gestion de la configuration
Il existe plusieurs concepts dans la modélisation. Entre autres, l’on a les arbres de
fonction, les diagrammes de flux des données, les diagrammes E/R, les
diagrammes de syntaxe, le dictionnaire des données, le pseudo code, le
structogramme, les règles et les tables de décision, les variantes d’automates, les
réseaux de Petri, les diagrammes de classe, les cartes CRC (Class –Responsability -
Collaboration), les message-sequent-charts, …
Dans les méthodologies, les langages sont souvent intermixés. Dans Z/CSP, l’on
retrouve deux modèles et deux langages basés sur le fonctionnel et le modèle
dynamique événementiel. Dans la technique Object Modelling Technique (OMT),
l’on retrouve trois modèles, et trois langages (objet, dynamique et fonctionnel).
L’on peut modéliser les diagrammes de classe, les diagrammes d’état et le flux de
données. Dans UML, l’on retrouve neuf langages (class, objet, uses cases,
séquences, collaboration, statecharts, activités, composant, déploiement). Nous
étudierons quelques modèles simples : le diagramme E/R, le diagramme de flux
de données, le modèle de classes, l’orientation objet, UML, etc.
6.2 Modélisation Entity/Relationship (ER)
Le modèle E/R spécifie les données semblables et leurs relations. Ces données
sont généralement enregistrées d’une manière persistante. E/R a été développé en
1976 par Peter CHEN pour la modélisation des données. Le résultat est un modèle
conceptuel assez stable contre les changements de fonctionnalité. Les entités sont
des ensembles d’objets individuels qui se distinguent les uns des autres par leurs
propriétés. Les attributs constituent la propriété commune à un ensemble
d’entités. Les relations sont des rapports (sémantiques) entre les entités.
La méthode E/R présente des avantages et des inconvénients. Ces avantages
proviennent de sa simplicité. Les images et les trois concepts sont faciles à
comprendre. Plusieurs outils ont été développés pour supporter la philosophie
E/R et elle a beaucoup de succès dans la pratique. Les inconvénients proviennent
de son caractère non standarisé. En effet, les relations sont elles binaires ou n-aire,
les extensions orientées d’objets ont-elles un fondement, par exemple la relation
is-a ? Ensuite, il existe des propriétés impossibles à spécifier d’une manière
visuelle. Enfin chaque fonction avec un argument correspond à une relation n+1
arguments.
6.3 Diagramme de flux de données
Ce raffinement décrit comment un livre est sélectionné mais il n’est pas encore
précis. Le titre et le nom de l’utilisateur sont–ils véritablement nécessaires ? De
surcroît, la sémantique n’est mentionnée qu’à travers les noms des fonctions. Les
aspects de contrôle ne sont pas cités, l’exécution n’est pas synchronisée. Les DFD
sont aussi utilisés dans les méthodes de développement. On les désigne de DFD
hiérarchiques et ils livrent une structure de modules. La procédure M appelle soit
M1 une fois soit M2 plusieurs fois. M2 transmet B à M1 et en reçoit A et M reçoit C
de M2. L’architecture résultante du module commande de livre est la suivante :
6.4 Les modèles de classe
Les modèles de classe soulignent les objets et leurs relations. Le but palpable
étant la compréhensibilité et la réutilisation. Le système est décrit à l’aide des
objets qui par leurs attributs et leurs fonctions soit collectés dans des classes.
Maison familiale Maison familiale Maison familiale
Type: maison de campagne Type : Bungalow Type : maison de ville
Propriètaire : Dr Fam Propriétaire : Kengso Propriétaire : yamlague
Adrees : Idole Adresse : Bamyanga Adresse :calmette
Surface : 400m2 Surface : 250m2 Surface : 200m2
Nbre douches : 3 Douche :2 Douche :2
Piscine : oui Piscine :non Piscine :non
Jardin : 2000m2 Jardin :1500m2 Jardin :400m2
Année : 1970 Année :1986 Année :1990
Prix : 60m Prix :40 Prix 30m
Demander prix Demander prix Demander prix
6.4 Les modèles de classe
Exemple : RetirerDeLArgentAuDistributeur
Lorsqu’un client a besoin de retirer du liquide il peut en utilisant un distributeur retirer de
l’argent de son compte. Pour cela
- le client insère sa carte bancaire dans le distributeur
- le système demande le code pour l’identifier
- le client choisit le montant du retrait
- le système vérifie qu’il y a suffisamment d ’argent
- si c’est le cas, le système distribue les billets et retire l’argent du compte du client
- le client prend les billets et retire sa carte
6.7 Cas d’utilisation
Pour la description du cas d’utilisation, certaines informations doivent être prises en
compte. Les plus importantes doivent ressortir dans la description et couvrent les faits
suivants : le début du cas d’utilisation (CU) avec les pré-conditions, la fin du CU avec
ses post-conditions, le chemin correspondant au déroulement normal, les variantes
possibles et les cas d’erreurs, Les interactions entre le système et les acteurs, les
informations échangées et les éventuels besoins non fonctionnels.
RetirerDeLArgentAuDistributeur
Précondition : Le distributeur contient des billets, il est en attente d’une opération, il
n’est ni en panne, ni en maintenance
Début : lorsqu’un client introduit sa carte bancaire dans le distributeur.
Fin : lorsque la carte bancaire et les billets sont sortis.
Postcondition : Si de l’argent a pu être retire, la somme d’argent sur le compte est
égale à la somme d’argent qu’il y avait avant moins le montant du retrait. Sinon la
somme d’argent sur le compte est la même qu’avant.
6.7 Cas d’utilisation
RetirerDeLArgentAuDistributeur
Déroulement normal :
(1) le client introduit sa carte bancaire
(2) le système lit la carte et vérifie si la carte est valide
(3) le système demande au client de taper son code
(4) le client tape son code confidentiel
(5) le système vérifie que le code correspond à la carte
(6) le client choisit une opération de retrait
(7) le système demande le montant à retirer
…
Variantes :
(A) Carte invalide : au cours de l ’étape (2) si la carte est jugée invalide, le système affiche un
message d ’erreur, rejette la carte et le cas d ’utilisation se termine.
(B) Code erroné: au cours de l ’étape (5) …
Contraintes non fonctionnelles : (A) Performance: le système doit réagir dans un délai inférieur
à 4 secondes, quelque soit l’action de l ’utilisateur. (B) Résistance aux pannes : si une coupure
de courant ou une autre défaillance survient au cours du cas d ’utilisation, la transaction sera
annulée, l ’argent ne sera pas distribué. Le système doit pouvoir redémarrer automatiquement
dans un état cohérent et sans intervention humaine. (C) Résistance à la charge : le système doit
pouvoir gérer plus de 1000 retraits d’argent simultanément ...
6.7 Cas d’utilisation
Scénario : Pour décrire ou valider un CU, UML prévoit les scénarii. Un scénario est un
exemple, une manière particulière d’utiliser le système par une personne particulière, dans un
contexte particulier. Un cas d’utilisation est en quelque sorte un ensemble de scénarii.
Exemple de scénario : RetirerDeLArgentAuDistributeur
• Nawal insère sa carte dans le distributeur d2103
• Le système accepte la carte et lit le numéro de compte
• Le système demande le code
• Nawal tape ‘1234 ’
• Le système indique que ce n ’est pas le bon code
• Le système affiche un message et propose de recommencer
• Nawal tape ‘6622’
• Le système affiche que le code est correct
• Le système demande le montant du retrait
• Nawal tape 50000 frs CFA
• Le système vérifie s’il y a assez d ’argent sur le compte
•...
Exemple de scénario
Chapitre 7:
Les attributs définissent les données (états des objets). Les opérations
(méthodes) définissent comment les objets interagissent. L’on peut
aussi nommer les responsabilités.
L‘identification des classes
Un modèle de classes est bon quand les objets remplissent les
exigences requises.